私にはDataRows
に関する質問があります。私はDataTable
を持っていて、私はDataRow
のリストに変換しました。今私は各DataRow
に格納されている文字列情報が必要です。これどうやってするの?これは私のコードです:Cでのdatarowの値を取得する
List<DataRow> list = dt.AsEnumerable().ToList();
私にはDataRows
に関する質問があります。私はDataTable
を持っていて、私はDataRow
のリストに変換しました。今私は各DataRow
に格納されている文字列情報が必要です。これどうやってするの?これは私のコードです:Cでのdatarowの値を取得する
List<DataRow> list = dt.AsEnumerable().ToList();
各要素にアクセスするためにインデックスを使用してください。次のコードは、リストの最初の要素にアクセスします。
list[0].MyString;
ミストリングとは何ですか? – Ryan
アクセスしようとしているプロパティの名前。 – BentOnCoding
そしてリスト[0] ["columnname"]、またはリスト[0] [0]のように列インデックスで個々の列にアクセスできます。 – Slider345
あなたは怠惰 "ColumnNameに" のすべての文字列値を取得するには、この、
foreach(var row in list)
{
var value = row["ColumnName"] as string;
}
またはこれを行うことができます。
var values = list.Select(row => row["ColumnName"] as string);
なぜ、DataTableをリストにするのですか?ただ疑問に思う。
私は実際にdatarowのすべての内容をリスト要素として必要としますので、簡単に操作することができます – Ryan
datarowにはオブジェクトが含まれるため、後ですべてを適切な型にキャストして非ジェネリックリスト(ArrayList、たとえば、DataRowの内容を配列に移動します。これは必ずしも最良の方法ではありませんが、それはあなたのケースに左右されます。 –
List <>はDataTableより手の込んだものですが、テーブルが巨大であれば、重複したデータ構造を作成するのを避けるために 'dt'自体を使うほうが良いでしょう。結局のところ、List <>のようにインデックスできます。過去に同じミスを犯した後、巨大なデータセットを実行していると私は言う。このようなリスト作成は遅くなる可能性があります。 :) –
これはすべきことです。 string t = list[row]["column name"].ToString();
あなたがのDataRowに標準インデクサーを使用する必要があります:あなたが行から来るデータの配列で動作するようにしたい場合は、
string someValue =
list[0]["SomeColumn"] as string;
をそれとも、
ArrayList lst = new ArrayList(list[INDEX_OF_THE_ROW].Count);
foreach(object value in list[INDEX_OF_THE_ROW])
{
lst.Add(value);
}
List<DataRow> list = dt.AsEnumerable().ToList();
var mystring = list[0]["ColumnName"].ToString();
"今私は各データローに格納されている文字列情報が必要です。"これはちょっと混乱します。特定の列のすべての値を連結しますか?おそらく 'List'または何か他のデータ収集?あなたはそれをファイルに書き出したいでしょうか? –