0

フォームビュー フィールドから文字列 (40 以上のフィールド) として値を取得するプロジェクトがあります。コードの行数を減らし、フォームビューから収集する文字列値ごとにリスト値の追加を 1 行のコードにまとめたいと考えています。

私のコードスニップは次のとおりです。

...
List<string> mylist = new List<string>();

string str1 = e.NewValues["value1"].ToString();
myList.Add(str1);
string str2 = e.NewValues["value2"].ToString();
myList.Add(str2);
string str3 = e.NewValues["value3"].ToString();
myList.Add(str3);
string str4 = e.NewValues["value4"].ToString();
myList.Add(str4);
...

次のような 1 行のコードでこれらの文字列を追加することは可能ですか。

myList.Add(string str1 = e.NewValues["value1"].ToString());

また

myList.Add((string) something... not getting the correct format.

私はSQLパラメータで同様のことをしました-つまり-

 cmd.Parameters.Add(new OleDbParameter("ENTRY", OleDbType.VarChar) 
 { 
   Value = ENTRY,
   Direction = ParameterDirection.Input 
 }); 

--しかし、私はこれを行うために多くの方法を検索しましたが、何も見つかりません。正しく検索していないだけなのか、それとも不可能なのかわかりません。

4

6 に答える 6

4
List<string> mylist = new List<string>
{
   e.NewValues["value1"].ToString(),
   e.NewValues["value2"].ToString()
   //etc...
};

オブジェクト初期化子を使用すると、初期化時にオブジェクトを構築できます。

たとえば、クラスがある場合:

class Test
{
   string test1 { get; set; }
   int test2 { get; set; }
}

次のように初期化できます。

Test tester = new Test{ test1 = "some string", test2 = 5 };
于 2013-10-25T15:56:29.360 に答える
1

あなたが使用することができます

myList.AddRange(
   new[]{  
        e.NewValues["value1"].ToString(),   
        e.NewValues["value2"].ToString()  
});

またはインライン割り当てを使用します。

List<string> mylist = new List<string>
{
   e.NewValues["value1"].ToString(),
   e.NewValues["value2"].ToString()
};
于 2013-10-25T15:57:52.577 に答える
1

これを試して :

myList.Add(e.NewValues["value1"].ToString());
于 2013-10-25T15:56:28.220 に答える