C#将列表的元素分配给变量列表

时间:2012-03-07 16:10:56

标签: c# list

在Perl中,可以执行以下操作

($a, $b, $c) = split(',', "aaa,bbb,ccc");

有没有人知道C#中是否有等价物而不是以下内容?

var elements = "aaa,bbb,ccc".Split(',');
var a = elements[0];
var b = elements[1];
var c = elements[2];

或者是否可以更简洁地完成上述操作?

3 个答案:

答案 0 :(得分:3)

没有。在C#中,无法在单个赋值表达式中分配多个变量。你肯定需要单独的变量而不是数组吗?

也许如果你给了我们更广泛的背景,我们或许可以建议一个更好的解决整体问题的方法 - 通常如果你试图以一种不同语言的方式处理任务,你最终会陷入混乱代码,这可能就是这种情况。

答案 1 :(得分:2)

在C#中没有其他方法可以做到这一点。 但是.net中有希望 - 即F#:D 有了这个,你可以做到

let [| a; b; c |] = "aaa,bbb,ccc".Split(',')

答案 2 :(得分:0)

仍然不是一个完美的解决方案,但是使用C#7,我们可以使用元组解构:

var elements = "aaa,bbb,ccc".Split(',');
var (a, b, c) = (elements[0], elements[1], elements[2]);