C# 查找在列表中正好出现两次的重复项

C# 查找在列表中正好出现两次的重复项,c#,lambda,find,C#,Lambda,Find,我有一个自动生成的列表 var v = new List<int>(1000); var generateur = new Random(1); for (int i = 0; i != 1000; ++i) v.Add(generateur.Next(10000)); var v=新列表(1000); var Generator=新随机变量(1); 对于(int i=0;i!=1000;++i) v、 添加(发电机下一个(10000)); 我想用一个lambda表达式

我有一个自动生成的列表

var v = new List<int>(1000);
var generateur = new Random(1);
for (int i = 0; i != 1000; ++i)
     v.Add(generateur.Next(10000));
var v=新列表(1000);
var Generator=新随机变量(1);
对于(int i=0;i!=1000;++i)
v、 添加(发电机下一个(10000));

我想用一个
lambda表达式找出有多少个数字重复两次如果我理解你的问题(以及你在代码注释中使用的整数),你似乎想计算两个数字组成的一组出现的次数。不是这些数字的列表

List<String> listDup = new List<String> { "6", "1", "2", "4", "6", "5", "1" };
var duplicates = listDup.GroupBy(n => n)
                 .Where(grp => grp.Count() == 2)
                 .Select(grp => grp.Key).ToList();
那么解决办法就是

 int repeated = v.GroupBy(x => x).Where(g => g.Count() == 2).Count();

如果我理解您的问题(以及您在代码注释中使用的整数),那么您似乎想要计算两个数字组成的组出现的次数。不是这些数字的列表

那么解决办法就是

 int repeated = v.GroupBy(x => x).Where(g => g.Count() == 2).Count();

现在我们知道你想要什么了。你想得到什么?:)int nbvalerdouble=v.GroupBy(i=>i)。其中(g=>g.Count()==2);我对编程非常陌生,发现只在一个表达式中实现它非常困难:pgroupbycount(),你就完成了。试试这个
var newlist=v.GroupBy(I=>I)。其中(g=>g.Count()==2)。选择(j=>j.Key.ToList()现在我们知道你想要什么了。你想得到什么?:)int nbvalerdouble=v.GroupBy(i=>i)。其中(g=>g.Count()==2);我对编程非常陌生,发现只在一个表达式中实现它非常困难:pgroupbycount(),你就完成了。试试这个
var newlist=v.GroupBy(I=>I)。其中(g=>g.Count()==2)。选择(j=>j.Key.ToList()
我认为你是对的Steve我将其解释为返回一个重复的列表与总计数,但重新阅读后,你的解决方案是最正确的
+2
@MethodMan最初我在同一行上思考,选择了你的答案作为正确答案(无重复),然后继续问另一个问题,但是,当我重新阅读他的评论时,我注意到了细节。如果我添加以下内容,让OP 2备选方案1返回列表中的数字正好2次的列表,或者返回列表中重复的总数正好2次,我也可以得到同样的结果。。请参阅我的附加更新。此更新可以缩短为
v.GroupBy(x=>x).Count(g=>g.Count()==2)
我认为你是对的Steve我将其解释为返回一个重复的列表与总计数,但重新阅读后,你的解决方案是最正确的
+2
@MethodMan最初我在同一行上思考,选择了你的答案作为正确答案(无重复),然后继续问另一个问题,但是,当我重新阅读他的评论时,我注意到了细节。如果我添加以下内容,让OP 2备选方案1返回列表中的数字正好2次的列表,或者返回列表中重复的总数正好2次,我也可以得到同样的结果。。请参阅我的附加更新。此更新可以缩短为
v.GroupBy(x=>x).Count(g=>g.Count()==2)