C# 对实现“Distinct”的DataTable上的Linq查询感到困惑

C# 对实现“Distinct”的DataTable上的Linq查询感到困惑,c#,.net-4.0,C#,.net 4.0,我试图使用LINQ从数据表返回一组不同的值 这是我的代码,没有“独特”部分,因为我正在努力制定适当的linq语句: DataTable gridData = RgClientData.DataSource as DataTable; var results = from myRow in gridData .AsEnumerable() select (myRow.Field<string>("AssignedUser")); 仅将Distinct

我试图使用LINQ从数据表返回一组不同的值

这是我的代码,没有“独特”部分,因为我正在努力制定适当的linq语句:

 DataTable gridData = RgClientData.DataSource as DataTable;
   var results = from myRow in gridData .AsEnumerable()
             select (myRow.Field<string>("AssignedUser"));
仅将Distinct添加到select的末尾不起作用。我正在绞尽脑汁研究语法,因为我不完全理解“Distinct”部分与Linq查询的关系


有人能给我指一下正确的方向吗?谢谢,您的问题需要用括号括起来,以便在末尾加上Distinct:

var results = (from myRow in gridData .AsEnumerable()
              select myRow.Field<string>("AssignedUser")).Distinct();
或者您可以切换到流畅的语法:

var results = gridData.AsEnumerable()
                      .Select(myRow => myRow.Field<string>("AssignedUser"))
                      .Distinct();

您的查询需要用括号括起来,以便在其末尾添加Distinct:

var results = (from myRow in gridData .AsEnumerable()
              select myRow.Field<string>("AssignedUser")).Distinct();
或者您可以切换到流畅的语法:

var results = gridData.AsEnumerable()
                      .Select(myRow => myRow.Field<string>("AssignedUser"))
                      .Distinct();
试试这个:

 var results = (from myRow in gridData .AsEnumerable()
             select (myRow.Field<string>("AssignedUser")).Distinct();
试试这个:

 var results = (from myRow in gridData .AsEnumerable()
             select (myRow.Field<string>("AssignedUser")).Distinct();
columnname是需要其不同值的列的名称

您将获得字符串数组distinctcolumn,您可以根据需要使用它

columnname是需要其不同值的列的名称


您可以使用字符串数组distinctcolumn,您可以根据需要使用它。

谢谢,这非常有效,也让我意识到为什么我会如此困惑-我不知道有两种编写LINQ表达式的方法。这让我有了进一步的阅读……谢谢,这本书很好用,也让我意识到为什么我会如此困惑——我不知道有两种方式来书写LINQ表达式。这让我进一步阅读……这与4个月前被接受的答案完全相同。冒着陈述显而易见的风险,在写帖子之前,你应该检查没有人已经发布了你的答案-至少检查接受的答案…这与4个月前接受的答案完全相同。冒着陈述显而易见的风险,在写帖子之前,你应该检查没有人已经发布了你的答案——至少检查一下被接受的答案。。。