首页 > 后端开发 > C++ > 如何在 LINQ 查询中将 Contains() 与字符串数组一起使用?

如何在 LINQ 查询中将 Contains() 与字符串数组一起使用?

Susan Sarandon
发布: 2024-12-27 07:19:09
原创
125 人浏览过

How to Use Contains() with a String Array in LINQ Queries?

如何在 LINQ 查询中将 Contains(string) 替换为 Contains(string[])

在 LINQ 中,Contains() 方法可以用于检查集合是否包含特定元素。默认情况下,Contains() 方法采用单个字符串参数,但是如果您需要与字符串数组进行比较怎么办?

问题:

我有一个LINQ 查询如下所示:

from xx in table
where xx.uid.ToString().Contains(string[])
select xx
登录后复制

string[] 数组中的值是数字(例如 1、 45、20、10)。我想使用 Contains() 方法来检查数组中是否存在 xx.uid 属性(这是一个数字)。我该怎么做?

答案:

要将 xx.uid 与字符串数组进行比较,不能直接使用 Contains(string) 方法。相反,您需要将 string[] 数组转换为支持 Contains() 方法的集合。这里有两种方法:

  1. 使用 List

将 string[] 数组转换为 List然后在列表上使用 Contains() 方法:

var uids = new List<string>(stringArray);
var selected = table.Where(t => uids.Contains(t.uid.ToString()));
登录后复制
  1. 使用列表; (如果uid也是int):

如果uid也是整数,则可以将string[]数组转换为List;然后使用列表上的 Contains() 方法:

var uids = stringArray.Select(int.Parse).ToList();
var selected = table.Where(t => uids.Contains(t.uid));
登录后复制

扩展方法(可选):

您还可以为字符串创建扩展方法[ ] 类型提供一个带有字符串参数的 Contains() 方法:

public static bool Contains(this string[] arr, string value)
{
    return arr.Any(s => s == value);
}
登录后复制

使用此扩展方法,您可以直接对 string[] 数组使用 Contains() 方法:

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));
登录后复制

以上是如何在 LINQ 查询中将 Contains() 与字符串数组一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板