Посчитать Сумма и Кол-во в linq
От: Аноним  
Дата: 13.10.10 10:25
Оценка:
Есть коллекция однотипных объектов.


 public class DemoCustomer 
    {
        public DemoCustomer(int d)
        {
            age = d;    

            ages = age > 25 ? new[] { 1, 2, 3 } : new[] { 100, 200, 300 };
        }

        public readonly int age = 34;

        public readonly IEnumerable<int> ages;
    }

    class Program
    {
        static void Main(string[] args)
        {
            DemoCustomer d1 = new DemoCustomer(2);
            DemoCustomer d2 = new DemoCustomer(21);
            DemoCustomer d3 = new DemoCustomer(31);
            DemoCustomer d4 = new DemoCustomer(35);

            var arr = new List<DemoCustomer> {d1, d2, d3, d4};
        }
    }



как Кол-во и сумму ages для всех?
Re: Посчитать Сумма и Кол-во в linq
От: QrystaL Украина  
Дата: 13.10.10 10:55
Оценка:
А>как Кол-во и сумму ages для всех?

1. Количество чего?

2. Сумма:

            var sum = arr
                .SelectMany(c => c.ages)
                .Aggregate((x, y) => x + y);
Re[2]: Посчитать Сумма и Кол-во в linq
От: Аноним  
Дата: 13.10.10 11:38
Оценка:
Здравствуйте, QrystaL, Вы писали:

А>>как Кол-во и сумму ages для всех?


QL>1. Количество чего?


QL>2. Сумма:


QL>
QL>            var sum = arr
QL>                .SelectMany(c => c.ages)
QL>                .Aggregate((x, y) => x + y);
QL>


нужно кол-во всех ages и сумму по ним в одном объекте получить (анонимный тип)
Re[3]: Посчитать Сумма и Кол-во в linq
От: QrystaL Украина  
Дата: 13.10.10 12:17
Оценка:
А>нужно кол-во всех ages и сумму по ним в одном объекте получить (анонимный тип)

            var sumAndCount = arr
                .SelectMany(c => c.ages)
                .Aggregate(new { Sum = 0, Count = 0 }, (x, y) => new { Sum = x.Sum + y, Count = x.Count + 1 });
Re: Посчитать Сумма и Кол-во в linq
От: Suigintou  
Дата: 14.10.10 05:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>как Кол-во и сумму ages для всех?

arr.Select(c=>c.age).Sum();
arr.Count();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.