0

我有一个初始化的结构对象数组,如下所示:

struct1 SettingList[] = { {"as","bs","cs"} , {"ak","bk",ck"} }

struct1 定义如下:

struct1{char[] str1; char[] str2; char[] str3}

我正在将一些 C++ 代码转换为 C#,在 C++ 代码中我看到一个对象访问如下:

SettingList["as"].str1

如何使用该对象的第一个成员访问该对象?我将如何在 c# 中做到这一点而不必指定 SettingList[0].str1

4

2 回答 2

1

您可以使用字典而不是map.

var settingsList = yourArray.ToDictionary(i => i[0]);
var foo = settingsList["as"];
于 2013-11-05T17:46:29.157 回答
0

如果你想找到将给定字符串作为第一个值的结构,你可以使用这个:

var value = SettingList.First(setting => setting[0] == "as").str1;

如果您想使用[]运算符来执行此操作,那么您需要创建自己的类型来保存这样的数组,并且在重载的[]运算符实现中执行与上述类似的操作。

于 2013-11-05T17:46:38.473 回答