1

示例可能是最简单的解释方法:

{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}
}
4

1 回答 1

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);
    }
于 2013-05-04T01:25:40.963 回答