我有多个字符串列表,IList<string>
,我想将它们合并到一个列表中,显示每个项目(如字典)的不同字符串和计数。什么是最有效的方式来做到这一点?将列表添加到一起
Q
将列表添加到一起
1
A
回答
1
Dictionary<string, int> count = new Dictionary<string, int>();
foreach(IList<int> list in lists)
foreach(int item in list) {
int value;
if (count.TryGetValue(item, out value))
count[item] = value + 1;
else
count[item] = 1;
}
+0
这会比上面的Linq解决方案更快吗? – zsharp 2009-01-22 03:22:41
+0
我认为它应该快一点。但是,您应该基准准确地看到。主要好处是与C#2.0编译器兼容。 – 2009-01-22 09:33:05
3
LINQ(肯定是最有效的代码方面键入和保持;总体性能将是大约相同的任何其他方法):
如果列表是在单独的变量:
var qry = from s in listA.Concat(listB).Concat(listC) // etc
group s by s into tmp
select new { Item = tmp.Key, Count = tmp.Count() };
如果列表都在(名单)父列表:
var qry = from list in lists
from s in list
group s by s into tmp
select new { Item = tmp.Key, Count = tmp.Count() };
然后,如果你真的想要一个清单:
var resultList = qry.ToList();
1
List<List<string>> source = GetLists();
//
Dictionary<string, int> result = source
.SelectMany(sublist => sublist)
.GroupBy(s => s)
.ToDictionary(g => g.Key, g => g.Count())
相关问题
- 1. 如何将列表添加到一起
- 2. 将列表添加到one2many
- 3. 将列添加到SQLAlchemy表
- 4. 将值添加到列表
- 5. 将re.compile添加到列表
- 6. 将元组添加到列表列表
- 7. 将一个列表添加到一个单独的列表中
- 8. 将所有列一起添加?
- 9. MySql:将一列添加到另一列
- 10. 一起加入列表的列表到一个列表在Python
- 11. 将列表中的元素添加到另一个列表中
- 12. 如何将对象列表添加到另一个列表中
- 13. 将列表项目随机添加到另一个列表
- 14. 将列表逐一添加到列表框
- 15. Python:你如何将一个列表添加到Python列表中?
- 16. 将多个列表全部添加到一个列表中Python
- 17. 将嵌套列表值添加到一个新列表
- 18. 将列动态添加到列表框
- 19. Hibernate OneToOne将列表添加到列
- 20. 将列表数组添加到datagrid列
- 21. 将阵列添加到列表中
- 22. 如何将表名添加到表列
- 23. PHP:一起添加阵列
- 24. 将两个列表加在一起
- 25. 将hexbin图一起添加
- 26. MySQL如何将所有列添加到一起,其中pid = X
- 27. 如何将两个阵列添加到一起?
- 28. 我似乎无法得到此功能来将列表添加在一起
- 29. 添加到列表
- 30. 将约束添加到引用另一个表的列的列
嗯,我认为这是重复的,但我想这是因为“字典”部分没有。 – 2009-01-21 23:22:00