你可以欺骗一个有点给人类FooBar的隐式构造函数(需要的元组支持最新版本的C#):
public class FooBar
{
public string foo;
public string bar;
public static implicit operator FooBar((string, string) init)
{
return new FooBar{ foo = init.Item1, bar = init.Item2 };
}
}
然后,像这样的代码将工作:
var fooBars = new FooBar[]
{
("Foo1", "Bar1"),
("Foo2", "Bar2")
};
或
FooBar[] fooBars =
{
("Foo1", "Bar1"),
("Foo2", "Bar2")
};
然后:
foreach (var fooBar in fooBars)
Console.WriteLine($"foo = {fooBar.foo}, bar = {fooBar.bar} ");
这似乎相当接近你的目标是什么了(尽管有括号,而不是大括号)。
但通常您只需使用new FooBar("Foo", "Bar")
语法作为其他答案。
Ofc词典的工作原理是这样的: Dictionary dic = new Dictionary (){{“foo”,“bar”}}; –
blackmaciek
https://msdn.microsoft.com/en-us/library/83h9yskw(v=vs.110).aspx –
如果您已经转化了一个FooBars数组,那么您还需要使用FooBars的实例来填充它,所以你将不得不做'新的Foobar()',然后填写'foo'和'bar'属性。但更好的方法是将它们传递给FooBar构造函数。此外,如果您想使用字符串对,请考虑使用字典。 – pkanev