3

だから現時点では多次元配列を持っています

string[,] items = new string[100, 4];

次に、必要な入力を収集して配列に入れ、リスト ボックスに表示します。

items[itemcount, 0] = id;
items[itemcount, 1] = newprice;
items[itemcount, 2] = quant;
items[itemcount, 3] = desc;

listBox1.Items.Add(items[itemcount, 0] + "\t" + items[itemcount, 3] + "\t " + items[itemcount, 2] + "\t " + items[itemcount, 1]);
listBox1.SelectedIndex = listBox1.Items.Count - 1;

そのため、ユーザーは、リストボックスから項目を選択してその項目を削除することができます。アイテムの削除に関しては、配列が適していないことに気付きました。したがって、4 つの異なるリストを作成し、list.Remove メソッドを使用してそれらを削除する必要がありますか、それとも 4 つの異なる作業を行う必要がないより良い方法がありますか?また、ユーザーが WinXP で古いコンピューターを実行している場合、心配する必要がありますか? 4つの異なるリストでのパフォーマンス? 多次元リストのようなものはありますか?

助けてくれてありがとう

4

3 に答える 3

7

クラスのインスタンスのリストを再発明しようとしています。何かのようなもの

class Item {
  public int Id {get;set;}
  public double Price {get;set;}
  public double Quantity {get;set;}
  public string Description {get;set;}
}

var myItems = new List<Item>();
于 2012-06-23T05:09:56.737 に答える
3

作業するデータの量では、パフォーマンスの問題はまったく見られないはずです。

List<T>Dictionary<T, T>IEnumerable<T>、または使用したいものに関係なく、どのタイプのコレクションでも、配列よりも多くの機能を提供します。

于 2012-06-23T05:07:40.420 に答える
2

リストに入れる必要がある複合型が 1 つあるようです。名前が正しいかどうかはわかりませんが、このようなものがあなたが望むものに見えます.

public class InventoryEntry
{
    public string Id {get;set;}
    public double NewPrice {get;set;}
    public int Quantity {get;set;}
    public string Description {get;set;}

    public override ToString()
    { 
           //return your specially formatted string here
    }
}
var items = new List<InventoryEntry>();
//add some items
//add them to your listbox
//etc...
于 2012-06-23T05:13:52.493 に答える