0

以下のように初期化された構造体オブジェクトの配列があります。

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

struct1 は次のように定義されます。

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

一部の C++ コードを C# に変換していましたが、C++ コードでは、以下のようにアクセスされるオブジェクトを見ました。

SettingList["as"].str1

オブジェクトの最初のメンバーを持つオブジェクトにどのようにアクセスできますか? SettingList[0].str1 を指定せずに C# でそれを行うにはどうすればよいでしょうか

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 に答える