C# 怎样知道List<string>里 每个元素重复了多少次?
怎样知道List<string>里每个元素重复了多少次如:List<string>listt=newList<string>();listt.Add("aaa");lis...
怎样知道List<string>里 每个元素重复了多少次
如: List<string> listt = new List<string>();
listt.Add("aaa");
listt.Add("aa");
listt.Add("dd");
listt.Add("aaa");
listt.Add("dd");
listt.Add("aa");
listt.Add("aaa");
想要的结果是:aaa3次、aa2次、dd2次 展开
如: List<string> listt = new List<string>();
listt.Add("aaa");
listt.Add("aa");
listt.Add("dd");
listt.Add("aaa");
listt.Add("dd");
listt.Add("aa");
listt.Add("aaa");
想要的结果是:aaa3次、aa2次、dd2次 展开
6个回答
展开全部
foreach (var item in listt.GroupBy(s => s))
{
Console.WriteLine("{0}:{1}次", item.Key, item.Count());
}
用linq可以简洁优雅去解决。。。
{
Console.WriteLine("{0}:{1}次", item.Key, item.Count());
}
用linq可以简洁优雅去解决。。。
追问
先分组,再统计,好方法。
坑爹啊 ,项目要求用.net2.0。LinQ用不了了。。。。
追答
可以的,using System.Linq就可以。
LinQ在4.0提供语法支持,在2.0已经提供扩展方法支持了。扩展方法在System.Linq命名空间下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private int AppearTimes(List<string> L, string text)
{
int c = 0;
foreach (string s in L)
if (s == text)
c++;
return c;
}
{
int c = 0;
foreach (string s in L)
if (s == text)
c++;
return c;
}
追问
我只知道list ,不知道text。
想通过对list自身的遍历来获取,或者.net提供什么API没能直接查找。
追答
我也没找到。我查过findall,但那个更复杂,而且msdn说内部实现仍然是遍历的,你也可以试试linq查询,不过原理不是一样的么?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
shit,最直接循环一下遍历就可以啦,如果不喜欢直接就用list.Contains的函数!true就i++,你懂吧!5分答得辛苦
追问
不能用contains 亲
看来也只能循环遍历了 哎
追答
哦,不行就用正则咯,怎么用我就不帮你搜了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//使用Lambda,先分组然后创建匿名类型保存起来。
var resultList= listt.GroupBy(m => m).Select(m => new { m.Key, Count = m.Count() }).ToList();
//resultList是一个包含key和Count属性的匿名对象集合,想知道aaa的count数只需这样取:
var aa = sss.Where(m => m.Key == "aaa").SingleOrDefault().Num;
提问者肯定不需要了,写出来希望能帮到其他朋友~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环比较吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询