我有一个列表:
list = { 1,1,1,2,3,3,3,4,4,5,6,6,6}
现在我想提取唯一值列表。
最终的列表仅包含{2,5}
。
如何通过LINQ或任何其他函数实现?
一种方法是使用GroupBy方法并仅过滤计数为1的内容:
var unique = list.GroupBy(l => l)
.Where(g => g.Count() == 1)
.Select(g => g.Key);
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]);
}
尝试这段代码:
var lstUnique =
from t1 in list
group t1 by t1 into Gr
where Gr.Count() == 1
select Gr.Key;
{2,5}
是一个包含独特值的列表,而不是非独特的值。 - paxdiablo