Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 坚持使用数据表和筛选的Linq查询_C#_Linq - Fatal编程技术网

C# 坚持使用数据表和筛选的Linq查询

C# 坚持使用数据表和筛选的Linq查询,c#,linq,C#,Linq,我需要一些关于linq查询的帮助 基本上,我有一个datatable,其中一些列被枚举为datarows。我需要获取与字符串[]匹配的所有行。下面的例子 string[0][0] = ColumnHeader1 string[0][1] = Hello string[1][0] = ColumnHeader2 string[1][1] = World 因此,我需要返回ColumnHeader1包含“Hello”和ColumnHeader2包含“WORLD”的所有行 有什么想法可以让我开始吗?下

我需要一些关于linq查询的帮助

基本上,我有一个datatable,其中一些列被枚举为datarows。我需要获取与字符串[]匹配的所有行。下面的例子

string[0][0] = ColumnHeader1
string[0][1] = Hello
string[1][0] = ColumnHeader2
string[1][1] = World
因此,我需要返回ColumnHeader1包含“Hello”和ColumnHeader2包含“WORLD”的所有行


有什么想法可以让我开始吗?

下面是一个应用于数据表的想法:

DataRow[] Filter(DataTable dt, string[][] filter)
{
    var data = dt.Rows
        .Select()
        .Where(dr => filter.All (s => dr[s[0]].ToString().Equals(s[1]))
        .ToArray();
    return data;
}
如果要枚举数据行,可以使用以下方法:

string[][] filter;
foreach (DataRow dr in dt.Rows)
{
    if (filter.All(s => dr[s[0]].ToString().Equals(s[1])))
        // this row should be included
}

如果我理解正确,我认为这将返回您想要的行:

var rows = from r in table.AsEnumerable()
           where r.Field<string>(filter[0][0]) == filter[0][1]
              && r.Field<string>(filter[1][0]) == filter[1][1]
           select r;
var rows=来自表中的r.AsEnumerable()
其中r.Field(filter[0][0])==filter[0][1]
&&r.字段(过滤器[1][0])==过滤器[1][1]
选择r;

强类型数据表和数据行?包含或等于?