Linq Group Count Предметы - PullRequest
       5

Linq Group Count Предметы

1 голос
/ 05 декабря 2011

У меня есть этот linq для сущности

From r In ReceiptRepository.Fetch
Where 
  r.RECEIPTDATE >= ReportStartDate And
  r.RECEIPTDATE <= ReportEndDate
From p In r.RECEIPTPAYMENTs
Group p By Tender = New With 
  {
     .TenderType = p.PAYMENTTYPE.TENDERTYPE, 
     .TenderName = p.PAYMENTTYPE.TENDERNAME
  } Into Group
Select New SalesTotalCount() With 
  {
     .Id = Tender.TenderType, 
     .Name = Tender.TenderName, 
     .Total = Group.Sum(Function(a) a.AMOUNT), 
     .Count = Group.Count
  }

Это работает нормально, за исключением свойства count, оно просто дает номер группы.Я не знаю, как выяснить каждый Тендерный Счет

1 Ответ

1 голос
/ 20 марта 2012

Учитывая, что вы пытаетесь сделать (то есть подсчитать ключи групп, в данном случае это тип транзакции), следующий код сделает это за вас.

public class Receipt
{
    public ATender Tender { get; set; } 
}

public class ATender
{
    public string TenderType { get; set;}
    public string TenderName { get; set;}
}

void Main()
{   
    IEnumerable<Receipt> ReceiptPayments= new [] { 
        new Receipt { Tender=new ATender {TenderName="1tender", TenderType="1"}},
        new Receipt { Tender=new ATender {TenderName="2tender", TenderType="2"}},
        new Receipt { Tender=new ATender {TenderName="3tender", TenderType="1"}}
    };

    int result = ReceiptPayments.GroupBy(x=>x.Tender).Where(g=>g.Key.TenderType == "1").Count();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...