C#中是否有逗号运算符?

时间:2017-06-10 03:59:09

标签: c# lambda

具体来说,我想运行下面的代码。问题不同于C和JS,它有一个逗号运算符(i=(1,2)是2)C#没有。 AddRange不会返回它使用的列表,因此我被困在这个lambda上。如何在不使用大括号的情况下编写lambda并返回语句,如下面的代码?

var ls1 = new String[]{"one", "three"};
var ls2 = new String[]{"two", "four"};
var ls = (new[] {ls1, ls2}).Aggregate(new List<String>(), (l,r)=> (l.AddRange(r), l));
//var ls = (new[] {ls1, ls2}).Aggregate(new List<String>(), (l,r)=> {l.AddRange(r); return l;});
Console.WriteLine(string.Join(", ", ls));

1 个答案:

答案 0 :(得分:0)

扩展方法适合您吗?它不像(1,2)运算符,但实现了避免在lambda中返回的目标

public static class Ext
{
    public static List<string> AddRangeAndReturn(this List<string> list, IEnumerable<string> itemsToAdd)
    {
        list.AddRange(itemsToAdd);

        return list;
    }
}

使用示例:

var ls = (new[] {ls1, ls2}).Aggregate(new List<String>(), (l,r)=> l.AddRangeWithReturn(r) );