Группировка C# Linq

Вам необходимо использовать «протоколы» для делегирования или предоставления данных в AsynTask.

Делегаты и источники данных

Делегат - это объект, который действует от имени, или в координации с другим объектом, когда этот объект встречает событие в программе. ( Определение Apple )

протоколы - это интерфейсы, которые определяют некоторые методы делегирования некоторых действий.

Вот полный пример !!!

18
задан Jonathan S. 10 June 2013 в 22:16
поделиться

2 ответа

На самом деле, хотя код Thomas будет работать, это - больше succint для использования лямбда-выражения:

var totals =
from s in sites
group s by s.SiteID into grouped
select new
{
    SiteID = grouped.Key,
    Last30Sum = grouped.Sum( s => s.Last30 )
};

, который использует метод расширения Суммы без потребности во вложенной операции LINQ.

согласно LINQ 101 пример - http://msdn.microsoft.com/en-us/vcsharp/aa336747.aspx#sumGrouped

34
ответ дан 30 November 2019 в 07:18
поделиться

Самый легкий путь ко мне для иллюстрирования использует объекты в оперативной памяти, таким образом, ясно, что происходит. LINQ к SQL должен смочь взять тот же самый запрос LINQ и перевести его в соответствующий SQL.

public class Site
{
    static void Main()
    {
        List<Site> sites = new List<Site>()
        {
            new Site() { SiteID = 1, VisitorType = 1, Last30 = 10, Total = 100, },
            new Site() { SiteID = 1, VisitorType = 2, Last30 = 40, Total = 140, },
            new Site() { SiteID = 2, VisitorType = 1, Last30 = 20, Total = 180, },
        };

        var totals =
            from s in sites
            group s by s.SiteID into grouped
            select new
            {
                SiteID = grouped.Key,
                Last30Sum = 
                    (from value in grouped
                     select value.Last30).Sum(),
            };

        foreach (var total in totals)
        {
            Console.WriteLine("Site: {0}, Last30Sum: {1}", total.SiteID, total.Last30Sum);
        }
    }

    public int SiteID { get; set; }
    public int VisitorType { get; set; }
    public int Last30 { get; set; }
    public int Total { get; set; }
}
4
ответ дан 30 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: