我有一个类型变量,List<int>我试图找到列表中唯一的项目——即它们只出现一次。
示例:var data = new List<int>{1, 1, 5, 2, 2, 7}();
预期输出:5,7
我有一个类型变量,List<int>我试图找到列表中唯一的项目——即它们只出现一次。
示例:var data = new List<int>{1, 1, 5, 2, 2, 7}();
预期输出:5,7
只需分组,然后选择计数所在的位置1:
var uniqueList = data.GroupBy(x => x).Where(x => x.Count() == 1).Select(x => x.Key).ToList();
您可能想试试这个 LINQ 语句:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
var data = new List<int>(new int[] { 1, 1, 5, 2, 2 , 7 });
var output = data.Select((value, index) => new {value, index})
.Where(a => data.Count(b => a.value == b) == 1)
.Select(a => a.value)
.ToList();
output.ForEach(o => System.Console.WriteLine(o));
}
}
如果您仍在寻找索引,您可能想试试这个:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
var data = new List<int>(new int[] { 1, 1, 5, 2, 2 , 7 });
var output = data.Select((value, index) => new {value, index})
.Where(a => data.Count(b => a.value == b) == 1)
.Select(a => a.index)
.ToList();
output.ForEach(o => System.Console.WriteLine(o));
}
}
你也可以使用 Linq,
var listA = new List<int> {1, 1, 5, 2, 2 , 7};
var listB = from g in listA.GroupBy(x => x) where g.Count() == 1 select g.First();
foreach (var item in listB)
{
Console.WriteLine(item);
}