示例可能是最简单的解释方法:
{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}
}
你想要这样的东西
[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);
}