最短内联集合初始值设定项?C#
编写内联集合初始值设定项的最简单/最短方法是什么 我不关心引用名称,索引很好,并且该项只需要在方法的范围内使用 我认为匿名类型集合会更混乱,因为每次我都必须继续写密钥名 我现在有最短内联集合初始值设定项?C#,c#,initialization,C#,Initialization,编写内联集合初始值设定项的最简单/最短方法是什么 我不关心引用名称,索引很好,并且该项只需要在方法的范围内使用 我认为匿名类型集合会更混乱,因为每次我都必须继续写密钥名 我现在有 var foo = new Tuple<int, string, bool>[] { new Tuple<int, string, bool>(1, "x", true), new Tuple<int, string, bool>(2, "y", false) }
var foo = new Tuple<int, string, bool>[]
{
new Tuple<int, string, bool>(1, "x", true),
new Tuple<int, string, bool>(2, "y", false)
};
var foo=new Tuple[]
{
新元组(1,“x”,真),
新元组(2,“y”,false)
};
我希望c#4.0会有我错过的东西。如果你使用
元组,那里的空间会少一点。创建(1,“x”,true)
而不是新的东西-你也可以在数组之前去掉新元组的东西:
var foo = new [] { Tuple.Create(1, "x", true), Tuple.Create(2, "y", false) };
或者拿这个来说:
Func<int, string, bool, Tuple<int, string, bool>> T = (i, s, b) => Tuple.Create(i,s,b);
var foo = new [] { T(1, "x", true), T(2, "y", false) };
Func T=(i,s,b)=>Tuple.Create(i,s,b);
var foo=new[]{T(1,“x”,真),T(2,“y”,假)};
甚至
Func<int, string, Tuple<int, string, bool>> T = (i, s) => Tuple.Create(i,s,true);
Func<int, string, Tuple<int, string, bool>> F = (i, s) => Tuple.Create(i,s,false);
var foo = new [] { T(1, "x"), F(2, "y") };
Func T=(i,s)=>Tuple.Create(i,s,true);
Func F=(i,s)=>Tuple.Create(i,s,false);
var foo=new[]{T(1,“x”),F(2,“y”)};
您能得到的最短路径是使用元组。创建而不是新元组
:
var foo = new [] { Tuple.Create(1, "x", true), Tuple.Create(2, "y", false) };
您还可以添加
using MyTuple= System.Tuple<int, string, bool>;
使用MyTuple=System.Tuple;
在结束时,使用声明,然后使用MyTuple
而不是较长的版本。您想要最短或最整洁的版本吗?如果使用较多,您可以编写自己的类,该类具有Add(int,string,bool)
方法,然后使用集合初始值设定项,如var foo=new MyCollection{{1,“x”,true},{2,“y”,false}代码>顺便说一句,减价提供了一种比您刚才所做的更容易格式化代码块的方法-只需将每行(未缩放的)缩进四个空格!看我的编辑哦-谢谢-试过“按钮”,但每一行都会停止。。。。我想这可能会让我在未来更快;)@CKoenig:选择所有要格式化的代码,然后按下按钮。这很有效。顺便说一下:对于OP:F#来说,它将在没有任何技巧的情况下完成此操作-(1,“x”,true)是否有一个元组allready;)谢谢,F#还是有点吓人!