Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用groupby在Linq lambda语句中添加CSV值_C#_Linq_Lambda - Fatal编程技术网

C# 尝试使用groupby在Linq lambda语句中添加CSV值

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

我正在尝试以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
{
    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 ));