初始化多个空列表

Adr*_*and 1 c#

简单的句法c#问题是这个.

鉴于此代码:

List<string> Columns = new List<string>();
List<string> Parameters = new List<string>();
List<string> Values = new List<string>();
Run Code Online (Sandbox Code Playgroud)

它可以简化为:

List<string> Columns = new List<string>(), Parameters = new List<string>(), Values = new List<string>();
Run Code Online (Sandbox Code Playgroud)

但是我可以将它缩短,因为它们都被初始化为空列表吗?

谢谢你们!

Ily*_*nov 13

var如果这些变量不是类字段,我可以建议使用关键字,因为类型是从使用中知道的.三个变量的平坦声明真的没有意义.

var Columns = new List<string>();
var Parameters = new List<string>();
var Values = new List<string>();
Run Code Online (Sandbox Code Playgroud)

是的,你可以做一些事情,比如在一行中声明多个局部变量,然后在一行中初始化它们.但请注意,避免在一行中声明多个变量 - 它使代码更具可读性.

  • `Columns = Parameters = Values = new List <string>();`不是提问者想要的.这将使所有三个变量引用相同的`List <string>`对象. (2认同)

Tim*_*ora 5

纯粹出于琐事/代码高尔夫球的要点:

Func<List<string>> n = () => new List<string>();
List<string> a = n(), b = n(), c = n(), d = n(), e = n(), f = n();
Run Code Online (Sandbox Code Playgroud)

但是用它代替可用的更清晰的结构将是荒谬的。如果初始化更为复杂,并且代码已正确命名和分隔,则它可能具有价值。

Func<List<string>> setupFoo = () => {
    return new List<string>() { 1, 2, 3 };
};

var option1 = setupFoo();
var option2 = setupFoo();
var option3 = setupFoo();
Run Code Online (Sandbox Code Playgroud)