5

クラスのプロパティとしてリストを作成しました。リストを定義するときにキーと値のペアを設定したいと考えています。私はもともと構造を使用していましたが、おそらく理想的なソリューションではないことに気付いたので、リストに変更しました。問題は、構文でエラーが発生することです。

何か案は?

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>[]
    {
            new KeyValuePair<String, String>("lsd",""),
            new KeyValuePair<String, String>("charset", "")
    };
4

6 に答える 6

12


おそらく何かが足りないのですが、とても単純なものではなく辞書を使用したでしょう。

Dictionary<string, string>formData = new Dictionary<string, string>
{
    {"lsd", "first"},
    {"charset", "second"}
};    

そして、次のように使用します。

foreach(KeyValuePair<string, string>k in formData)
{
    Console.WriteLine(k.Key);
    Console.WriteLine(k.Value);
}
....
if(formData.ContainsKey("lsd"))
    Console.WriteLine("lsd is already in");
....    
string v = formData["lsd"];
Console.WriteLine(v);
于 2013-02-27T10:38:43.003 に答える
2

これを試して:

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>
{
    new KeyValuePair<String, String>("lsd",""),
    new KeyValuePair<String, String>("charset", "")
};

[]あなたはあなたの定義に余分なものがありました。配列を作成していないので、必要ありません。また、いくつかの値を使用してリストを初期化する場合、値はコンマ()で区切る必要があります,

私の意見では、より良いアプローチはTupleクラスを使用することです:

pirvate List<Tuple<string, string>> formData = new List<Tuple<string, string>>()
{
    new Tuple<string, string>("lsd",""),
    new Tuple<string, string>("charset", "")
};
于 2013-02-27T10:32:29.450 に答える
0

3行目のセミコロンをコンマに変更し、1行目から角かっこを削除します。

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>
{
        new KeyValuePair<String, String>("lsd",""),
        new KeyValuePair<String, String>("charset", "")
};

ちなみに、辞書に変更すると、キーで値を簡単に検索できるようになります。

于 2013-02-27T10:30:48.297 に答える
0

[]宣言からを削除します

于 2013-02-27T10:31:40.470 に答える
0
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>()
    {
            new KeyValuePair<String, String>("lsd",""),
            new KeyValuePair<String, String>("charset", "")
    };
  1. なぜ[]コンストラクターの後?
  2. コレクション初期化子内の項目は、コンマを使用して区切る必要があります,
于 2013-02-27T10:31:48.063 に答える
0

試す

           private List<KeyValuePair<String, String>> formData = new List<KeyValuePair<String, String>>
    {
            new KeyValuePair<String, String>("lsd",""),
            new KeyValuePair<String, String>("charset", "")
    };
于 2013-02-27T10:32:11.370 に答える