1

例は、おそらく説明する最も簡単な方法です。

{1,2,2,3}

になる

{
    {1,0.25}
    {2,0.5}
    {3,0.25}
}

単純な構造体を使用して内側のペアを作成すると考えています。GroupBy とすべてを使用することは理解していますが、1 つの大きな 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 に答える