C# 尝试使用groupby在Linq lambda语句中添加CSV值
我正在尝试以CSV形式获取输出中的凭证列表,例如1、2、3、4 似乎无法理解我想要的是C# 尝试使用groupby在Linq lambda语句中添加CSV值,c#,linq,lambda,C#,Linq,Lambda,我正在尝试以CSV形式获取输出中的凭证列表,例如1、2、3、4 似乎无法理解我想要的是凭单=VoucherId,VoucherId var paymentGroups = new List<PaymentGroups>(); paymentGroups = paymentVouchers .GroupBy(x => new { x.PayFromBankAccountId, x.PaymentType}) .Select(x => new PaymentGroups
凭单=VoucherId,VoucherId
var paymentGroups = new List<PaymentGroups>();
paymentGroups = paymentVouchers
.GroupBy(x => new { x.PayFromBankAccountId, x.PaymentType})
.Select(x => new PaymentGroups
{
PayFromBankAccountId = x.Key.PayFromBankAccountId,
PaymentType = x.Key.PaymentType,
TotalAmounts = x.Sum(z => z.TotalPaymentAmount),
TotalCount = x.Count(),
//Group = x.Count()
//Vouchers = x.All(y => y.VoucherId != null)
//Vouchers = string.Join(y => y.
//Vouchers = x.Sum(y => y.VoucherId.ToString())
Vouchers = VoucherId , VoucherID
}).ToList();
var paymentVouchers = new List<PaymentVouchers>()
{
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 5, TotalPaymentAmount = 100, VoucherId = "1" },
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 5, TotalPaymentAmount = 200, VoucherId = "2" },
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 5, TotalPaymentAmount = 300, VoucherId = "3" },
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 6, TotalPaymentAmount = 100, VoucherId = "4" },
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 6, TotalPaymentAmount = 200, VoucherId = "5" },
new PaymentVouchers { PayFromBankAccountId = "ABC", PaymentType = 6, TotalPaymentAmount = 300, VoucherId = "6" },
new PaymentVouchers { PayFromBankAccountId = "DEF", PaymentType = 5, TotalPaymentAmount = 100, VoucherId = "7" },
new PaymentVouchers { PayFromBankAccountId = "DEF", PaymentType = 5, TotalPaymentAmount = 200, VoucherId = "8" },
new PaymentVouchers { PayFromBankAccountId = "DEF", PaymentType = 6, TotalPaymentAmount = 100, VoucherId = "9" },
new PaymentVouchers { PayFromBankAccountId = "DEF", PaymentType = 6, TotalPaymentAmount = 200, VoucherId = "10" },
};
您可以选择所有VoucherId并将其与连接,如:
您可以选择所有VoucherId并将其与连接,如:
语法错误','应为..x。是linqpadDo中的红色下划线部分吗?您知道如何添加自动递增字段吗?因此,say Group的另一列=DistinctNumber@JeremyMiller,可以添加变量
int counter=0
和内部Select statement递增该变量,如Group=counter++代码>要测试的其他选项:。选择((i,x)=>newpaymentgroups{Group=i++;TotalCount=x.Count();}
Syntax error','expected..x.是linqpadDo中的红色下划线部分吗?您知道如何添加自动递增字段吗?因此,say Group的另一列=DistinctNumber@JeremyMiller,您可以添加变量int counter=0;
并在内部选择statement递增此变量,如Group=counter++;
other option to测试:.Select((i,x)=>newpaymentgroups{Group=i++;TotalCount=x.Count();}
public class PaymentGroups
{
public Int32 Group {get; set;}
public string PayFromBankAccountId { get; set; }
public int PaymentType { get; set; }
public decimal TotalAmounts { get; set; }
public int TotalCount { get; set; }
public string Vouchers {get; set;}
}
public class PaymentVouchers
{
public string VoucherId {get; set;}
public string PayFromBankAccountId { get; set; }
public int PaymentType { get; set; }
public decimal TotalPaymentAmount { get; set; }
}
Vouchers = string.Join(",", x.Select(y => y.VoucherId ));