【问题标题】:LINQ Group By along with percent of list that contains elementLINQ Group By 以及包含元素的列表的百分比
【发布时间】:2013-04-28 11:48:45
【问题描述】:

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

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

【问题讨论】:

    标签: c# linq list group-by


    【解决方案1】:

    你想要这样的东西

        [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);
        }
    

    【讨论】:

    • 谢谢,正是我需要的。
    • 伪代码告诉了我足够的哈哈,但无论如何感谢。我会在一分钟内接受。
    • @wilson 太棒了,没有我可爱的编译器的帮助,我只能记住这么多;)
    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 2018-04-05
    • 2019-02-12
    • 2014-12-26
    • 2016-07-02
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多