C# 查找列表中只存在一次的项
我有一个C# 查找列表中只存在一次的项,c#,C#,我有一个List类型的变量,我试图在列表中查找唯一的项目,即它们只出现一次 示例:var data=newlist{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(); 只需分组,然后选择计数为1: var uniqueList = data.GroupBy(x =&
List
类型的变量,我试图在列表中查找唯一的项目,即它们只出现一次
示例:var data=newlist{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();
只需分组,然后选择计数为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));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
公共课程
{
公共静态void Main()
{
var数据=新列表(新int[]{1,1,5,2,2,7});
变量输出=数据。选择((值,索引)=>new{value,index})
其中(a=>data.Count(b=>a.value==b)==1)
.选择(a=>a.值)
.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));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
公共课程
{
公共静态void Main()
{
var数据=新列表(新int[]{1,1,5,2,2,7});
变量输出=数据。选择((值,索引)=>new{value,index})
其中(a=>data.Count(b=>a.value==b)==1)
.选择(a=>a.索引)
.ToList();
output.ForEach(o=>System.Console.WriteLine(o));
}
}
您可能希望尝试以下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));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
公共课程
{
公共静态void Main()
{
var数据=新列表(新int[]{1,1,5,2,2,7});
变量输出=数据。选择((值,索引)=>new{value,index})
其中(a=>data.Count(b=>a.value==b)==1)
.选择(a=>a.值)
.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));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
公共课程
{
公共静态void Main()
{
var数据=新列表(新int[]{1,1,5,2,2,7});
变量输出=数据。选择((值,索引)=>new{value,index})
其中(a=>data.Count(b=>a.value==b)==1)
.选择(a=>a.索引)
.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);
}
var listA=新列表{1,1,5,2,2,7};
var listB=来自listA.GroupBy(x=>x)中的g,其中g.Count()==1选择g.First();
foreach(列表B中的var项)
{
控制台写入线(项目);
}
您也可以使用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);
}
var listA=新列表{1,1,5,2,2,7};
var listB=来自listA.GroupBy(x=>x)中的g,其中g.Count()==1选择g.First();
foreach(列表B中的var项)
{
控制台写入线(项目);
}
示例:var data=newlist(){1,1,5,2,2,7};示例:var data=newlist(){1,1,5,2,2,7};请注意,这有一个二次运行时,因为它将枚举每个项目的列表(计数)。我完全同意@pokeNote的说法,这有一个二次运行时,因为它将枚举每个项目的列表(计数)。我完全同意@poke的说法