我需要迭代一组对象。根据对象的属性值,我需要将对象组合在一起。我还需要每个离散属性值的总计数。我不知道会有多少组,每组可能有1到n个对象。
我该怎么做?有没有algortihms可以帮我解决这个问题? Psuedocode或引用很好。
非常感谢!
答案 0 :(得分:2)
查看101 LINQ Samples - 具体在Group By Sample。
答案 1 :(得分:0)
以下是一些可能对您有帮助的代码。它通过属性A将Target实例分组到组中,然后遍历分组并打印组的计数......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IterateCollection
{
class Program
{
static void Main(string[] args)
{
var lst = new List<Target>() { new Target() { A=1, B=1 },
new Target() { A=1, B=2 },
new Target() { A=2, B=1 },
new Target() { A=2, B=2 },
new Target() { A=3, B=1 } };
var grp = lst.GroupBy(t => t.A);
var dic = grp.ToDictionary(g => g.Key);
List<int> res = null;
foreach (var key in dic.Keys )
{
res = dic[key].Select(t => t.A).ToList();
Console.WriteLine("Number of {0} is {1}", key, res.Count);
}
Console.ReadLine();
}
}
public class Target
{
public int A { get; set; }
public int B { get; set; }
}
}