3

私はC#にかなり慣れていません。多次元配列をどのように処理しますか?私もWPFを使用しています。

私の問題をより明確にするために、これが私がやろうとしていることです:

約200個の「レコード」を格納する必要のある配列があり、各レコードには3つのフィールドがあり、ユーザーはテキストボックスを使用して入力します。したがって、これがアレイの設定方法だと思います。

 string[,] Properties = new string[500, 3];

ユーザーがボタンを押すたびに、その配列に新しい「レコード」を追加します。私はあなたがそれをどのように行うかについて無知です。なんらかのカウンターを設置する必要があると思います。

また、配列の値を更新および削除する必要があります。どんな助けでもいただければ幸いです。ありがとうございました。

4

3 に答える 3

4

あなたはこれが初めてなので、他の人が提案したことを要約します。

レコード用のクラスを作成します (この例はかなり単純化されています)。

class MyRecord
{
    public string Property1 {get; set; }
    public string Property2 { get; set; }
    public string Property3 { get; set; }
}

次に、それらのレコードのリストを作成します。

List<MyRecord> theList;

theList.Addリストに新しいレコードを追加するために使用します。

于 2012-06-14T19:19:35.943 に答える
3

配列に簡単に追加することはできません。唯一のオプションは、新しい配列を別の行に割り当て、すべての古いアイテムをコピーして、新しいデータを最後の行に配置することです。

同様に行を削除する場合:削除された行の後にあるすべてのアイテムを「上」に移動し、配列を短くする必要があります。つまり、新しい配列を割り当て、すべてのアイテムをコピーすることになります。上記を参照 :-)

通常、配列は低レベルの構造であり、C#の開発者が使用することはめったにありません。特に、可変コレクションをモデル化する場合。物事の変更可能なコレクションが必要な場合は、たとえば、物事のコレクションを使用します。レコードを構成する3つのプロパティを含むクラスになります。List<Thing>Thing

コレクションクラスは、アイテムの挿入と追加、任意の位置でのアイテムの削除など、すべての一般的なケースを処理します。WPFについて説明したので、データを表示するための非常に強力なツールであるWPFのデータバインディングおよびテンプレート機能ともうまく連携します。 UI。

于 2012-06-14T19:17:20.723 に答える
2

おそらく代わりにリストを使用する必要があります

LinkedList<String[]> properties = new LinkedList<String[]>();

その後、エントリを追加/削除できます

properties.AddLast({"a","b","c"});

配列よりもリストを使用する利点は、任意の位置から要素を簡単に削除できることです:)

于 2012-06-14T19:20:02.517 に答える