Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# C linq to datatable中的Where子句_C#_Linq - Fatal编程技术网

C# C linq to datatable中的Where子句

C# C linq to datatable中的Where子句,c#,linq,C#,Linq,我在数据表中有两列Col1和col2,如下所示: 注: col1仅包含美国或英国,不包含其他值 现在,我的要求是根据美国和英国将价值观分开 如下所示,分别获取美国和英国对应的所有值 前面我已经用linq代码完成了这项工作。当时我的要求很简单, 只需获取col2中的所有记录: 现在,在新的要求中,我需要根据美国和英国将它们分开。当您需要根据某列的值将项目分开时,您可以使用GroupBy,如下所示: var groups = dt.AsEnumerable().GroupBy(s => s.F

我在数据表中有两列Col1和col2,如下所示:

注:

col1仅包含美国或英国,不包含其他值

现在,我的要求是根据美国和英国将价值观分开

如下所示,分别获取美国和英国对应的所有值

前面我已经用linq代码完成了这项工作。当时我的要求很简单,

只需获取col2中的所有记录:


现在,在新的要求中,我需要根据美国和英国将它们分开。

当您需要根据某列的值将项目分开时,您可以使用GroupBy,如下所示:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();
或者获取特定密钥的数字,如下所示:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();

当需要根据某列的值分隔项目时,可以使用GroupBy,如下所示:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();
或者获取特定密钥的数字,如下所示:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();

要获得col1等于我们的所有col2值的列表,可以使用如下代码:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();

要获得col1等于我们的所有col2值的列表,可以使用如下代码:

var groups = dt.AsEnumerable().GroupBy(s => s.Field<string>("col1"));
var byCol1 = groups.ToDictionary(g => g.Key, g => g.Select(s => s.Field<string>("col2")).ToArray());
foreach (var p in byCol1) {
    Console.WriteLine("{0} : {1}", p.Key, string.Join(", ", p.Value));
}
string[] items = byCol1["us"];
string[] data = dt.AsEnumerable().Where(s => s.Field("col1") == "us").Select(s => s.Field("col2")).ToArray();

查看可枚举项。Where查看可枚举项。Where OK,如何分别检索字符串[]中的值(对于us和uk分离?@user2979719迭代字典以打印值请参见编辑。@user2979719为什么要这样做?您的意思是您无法使其工作?好的,如何在字符串[]中分别检索值(对于us和uk分离?@user2979719迭代字典以打印值请参见编辑。@user2979719为什么要这样做?您的意思是无法使其工作?请使用System.Data.DataSetExtensions.dll引用并使用System.Data.DataSetExtensions.dll引用