1

次のようなコンテナを作成する必要があります:Container.Add(RowIndex、ValueIndex);

辞書にはキーと値があるだけで、これは私には良くありません。また、2つのコンテナを使用して行を作成し、必要に応じてインデックスを作成する方法がわかりません。

例:

Container[Row][Index]:
Container[0][0] = "Apple";
Container[0][1] = "Orange";
Container[1][0] = "Number";

このコンテナをSQLの読み取りに使用しようとしているためです。次の結果が得られたら、現在の行の値に+1を追加します。そして、インデックスはフィールド値を意味します。

コード内:

                int row = 0;

                while (ObjReader.Read())
                {
                    foreach (var result in ObjReader)
                        ReadList.Add(row, result.ToString());

                    row++;
                }

                ObjReader.NextResult();

これは読書用です

そして今、別のクラスに結果を取得します

    public string Field(int row, int index)
    {
        return ReadList[row][index];
    }
4

4 に答える 4

5

のを探しているようListですList

List<List<string>> results = new List<List<string>>();

while (haveMoreRows)
{
    List<string> nextRow = new List<string>();
    foreach (var item in currentRow)
        nextRow.Add(item.ToString());

    results.Add(nextRow);
}

これで、次のようなことができます: results[2][1]2 列目の 3 行目の値を取得します。

于 2012-08-30T18:23:31.517 に答える
1

単純なペア クラスを使用します。

public class Pair<P, T>
{
    public Pair() { }
    public Pair(P first, T second)
    {
        First = first;
        Second = second;
    }
    public P First { get; set; }
    public T Second { get; set; }
}

使用する:

List<Pair<int, string>> ReadList = new List<Pair<int, string>>();
while (ObjReader.Read())
{
    foreach (var result in ObjReader)
        ReadList.Add(new Pair<int, string> {
            First = row, 
            Second = result.ToString()
        });

    row++;
}

ObjReader.NextResult();
于 2012-08-30T18:43:21.273 に答える
0

iterator_type anonymous

イテレータはキーワード yield を使用します

foreach (var result in ObjReader)
{
        yield return result.ToString();
}

あなたはIEnumerableを持っています

于 2012-08-30T18:23:25.280 に答える
0

あなたが本当に欲しいのはDataTableのようです。これは、データベース テーブルを表すために特別に設計された行と列のコレクションです。

于 2012-08-30T18:52:12.453 に答える