示例可能是解释的最简单方法:
{1,2,2,3}
变为
{
{1,0.25}
{2,0.5}
{3,0.25}
}
我在想我会使用一个简单的结构来做内部对。我理解使用GroupBy和所有东西,但有没有办法在一个大的LINQ语句中创建这样的新列表?
另一个例子:
{'a','g','a','a','f'}
变为
{
{'a',0.6}
{'g',0.2}
{'f',0.2}
}
答案 0 :(得分:5)
你想要这样的东西
[TestMethod]
public void T()
{
var mySet = new List<string> { "a", "b", "a" };
var set = from i in mySet
group i by i into g
select new { Item = g.Key, Percentage = ((double)g.Count()) / mySet.Count() };
Assert.AreEqual(2, set.Count());
Assert.AreEqual("a", set.First().Item);
Assert.AreEqual(2.0/3, set.First().Percentage);
}