C# LINQ:返回列表中的非重复项
如果我有这样一个列表:C# LINQ:返回列表中的非重复项,c#,linq,list,C#,Linq,List,如果我有这样一个列表: List<int> test = new List<int>{1, 1, 2, 2, 3, 3, 4, 4, 5, 6 , 7 , 7 , 7}; 将使结果列表如下所示: {1,2,3,4,5,6,7} 如何创建一个独特的项目列表,如下所示: {5,6}那么您想删除所有重复项吗 您可以使用GroupBy: var distinctTest = test .GroupBy(i => i) .Where(g => g.Co
List<int> test = new List<int>{1, 1, 2, 2, 3, 3, 4, 4, 5, 6 , 7 , 7 , 7};
将使结果列表如下所示:
{1,2,3,4,5,6,7}
如何创建一个独特的项目列表,如下所示:
{5,6}那么您想删除所有重复项吗 您可以使用
GroupBy
:
var distinctTest = test
.GroupBy(i => i)
.Where(g => g.Count() == 1)
.Select(g => g.Key);
这将返回一个值序列(IEnumerable)——每个唯一值一个。List numberList=new List(){3,3,3,4,5,5,7,7,9,9};
List<int> numberList = new List<int>() { 3, 3, 3, 4, 5, 5, 7, 7, 9, 9 };
foreach (var x in numberList
.GroupBy(i => i)
.Where(g => g.Count() == 1)
.Select(g => g.Key))
{
Console.WriteLine(x.ToString());// outputs 4
}
foreach(数值列表中的变量x
.GroupBy(i=>i)
.其中(g=>g.Count()==1)
.选择(g=>g.Key))
{
Console.WriteLine(x.ToString());//输出4
}
List numberList=newlist(){3,3,4,5,5,7,7,9};
var distinctTest=numberList
.GroupBy(i=>i)
.其中(g=>g.Count()==1)
.选择(g=>g.Key);
foreach(distinctTest中的变量项)
{
控制台写入线(项目);
}
我确定这一定是重复的,但我不能很快找到它test.GroupBy(x=>x).Where(g=>g.Count()==1).选择(g=>g.Key)
谢谢,这对我帮助很大。你似乎误解了这个问题-OP已经说过他们不想要这个了。不确定是谁对此投了赞成票-这是错误的。请您对您的答案进行解释。请提供一些意见,说明为什么您的解决方案优于公认的答案。
test.Select(x => x).Distinct();
List<int> numberList = new List<int>() { 3, 3, 3, 4, 5, 5, 7, 7, 9, 9 };
foreach (var x in numberList
.GroupBy(i => i)
.Where(g => g.Count() == 1)
.Select(g => g.Key))
{
Console.WriteLine(x.ToString());// outputs 4
}
List<int> numberList = new List<int>() { 3, 3, 3, 4, 5, 5, 7, 7, 9, 9 };
var distinctTest = numberList
.GroupBy(i => i)
.Where(g => g.Count() == 1)
.Select(g => g.Key);
foreach (var item in distinctTest)
{
Console.WriteLine(item);
}