使用LINQ重写语句(C#)

Thi*_*ing 6 c# linq

是否可以使用lambda(C#)编写下面的内容

private static void GetRecordList(List<CustomerInfo> lstCustinfo)
{
    for (int i = 1; i <= 5; i++)
    {
        if (i % 2 == 0)

            lstCustinfo.Add(new CustomerInfo { CountryCode = "USA", CustomerAddress = "US Address" + i.ToString(), CustomerName = "US Customer Name" + i.ToString(), ForeignAmount = i * 50 });

        else
           lstCustinfo.Add(new CustomerInfo { CountryCode = "UK", CustomerAddress = "UK Address" + i.ToString(), CustomerName = "UK Customer Name" + i.ToString(), ForeignAmount = i * 80 });

    }
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 7

List<CustomerInfo> lstCustinfo = 
    Enumerable.Range(1, 5).Select(i => (i % 2 == 0)
        ? new CustomerInfo { CountryCode = "USA", CustomerAddress = "US Address" + i.ToString(), CustomerName = "US Customer Name" + i.ToString(), ForeignAmount = i * 50 }
        : new CustomerInfo { CountryCode = "UK", CustomerAddress = "UK Address" + i.ToString(), CustomerName = "UK Customer Name" + i.ToString(), ForeignAmount = i * 80 })
    .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 现在,问题是:这个lambda表达式真的更好吗?计算为开发人员写的行时:是的.在考虑其他开发人员的可读性时,可能必须稍后修改代码:绝对不!这就是为什么我不经常使用lambda表达式. (3认同)
  • 这显然有效并回答了问题,但在原始版本中它似乎*很多*更具可读性! (2认同)