我有一个清单
list = {1,1,1,2,3,3,3,4,4,5,6,6,6}
现在我想要一个非唯一值列表
最终列表仅包含{2,5}
如何通过LINQ或任何其他功能来实现。
答案 0 :(得分:10)
一种方法是使用GroupBy方法并仅过滤那些计数为1的那些。
var nonUnique = list.GroupBy(l => l)
.Where(g => g.Count() == 1)
.Select(g => g.Key);
答案 1 :(得分:0)
试试这个:
List<int> list = new List<int>(new int[]{ 1, 1, 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 6});
List<int> unique=new List<int>();
int count=0;
bool dupFlag = false;
for (int i = 0; i < list.Count; i++)
{
count = 0;
dupFlag = false;
for(int j=0;j<list.Count;j++)
{
if (i == j)
continue;
if (list[i].Equals(list[j]))
{
count++;
if (count >= 1)
{
dupFlag = true;
break;
}
}
}
if (!dupFlag)
unique.Add(list[i]);
}
答案 2 :(得分:0)
试试这段代码:
var lstUnique =
from t1 in list
group t1 by t1 into Gr
where Gr.Count() == 1
select Gr.Key;