我有一个这样的数组object:
object[] internationalRates = new object[]
{
new { name = "London", value = 1 },
new { name = "New York", value = 2 } ,
etc...
};
Run Code Online (Sandbox Code Playgroud)
我需要得到List<string>国家(或Dictionary<int, string>成对).我该如何施展它?
dynamic在这种情况下,您可以使用关键字:
var result = internationalRates.ToDictionary(
x => ((dynamic)x).value,
x => ((dynamic)x).name);
Run Code Online (Sandbox Code Playgroud)
这会生成一个带键/值对的Dictionary.
警告:
键和值都是类型dynamic,我不喜欢.如果您不注意原始类型,它可能会导致运行时异常.
例如,这工作正常:
string name = result[2]; // name == "New York"
Run Code Online (Sandbox Code Playgroud)
这也将编译得很好,但会抛出一个运行时异常:
int name = result[2]; // tries to convert string to int, doesn't work
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |