0

ASP.NET C#は初めてです。2つの列を持つArrayListを作成しようとしています。1つは値(文字列)用で、もう1つはそれぞれの数をカウントするためのものです。値を追加するときに、ArrayListを検索して値がすでに存在するかどうかを確認する必要があります。存在する場合は、1を追加し、存在しない場合は、配列に追加して、count列を1に設定します。誰かがコードサンプルを少し提供できますか?より良いアプローチがあれば、私はそれを聞きたいです。

4

2 に答える 2

1
private static Dictionary<string, int> values = new Dictionary<string, int>();

private static void Add(string newValue)
{
    if(values.ContainsKey(newValue))
    {
        values[newValue]++;  // Increment count of existing item
    }
    else
    {
        values.Add(newValue, 1);  // Add new item with count 1
    }
}
于 2012-09-26T02:07:40.877 に答える
0

文字列のリストから始めたばかりの場合は、これを行うためのより簡単な方法がたくさんあります。

私はおそらくGroupByここで拡張機能を使用します

List<string> items = GetItems(); // from somewhere
var groups = items.GroupBy(i => i);

var countedItems = groups.Select(g => new 
    { Value = g.First(), HowMany = g.Count() });

次に、必要に応じてArrayListに入れます。

var arrayList = new ArrayList();
foreach (var thing in countedItems)
{
    arrayList.Add(thing.Value + " " thing.HowMany);
}

しかし、私はおそらくこれをに入れたいと思いDictionaryます。なぜなら、各単語は1つの値、つまり出現回数だけにマップされることがわかっているからです。

var result = countedItems.ToDictionary(i => i.Value, i => i.HowMany);
于 2012-09-26T01:35:42.473 に答える