1

私は次のようにC#で文字列配列を持っています:

string[] sites = new string[] {
    "http://foobar.com",
    "http://asdaff.com",
    "http://etc.com"
};

私はこの配列をで使用してforeachおり、現在反復しているサイトに応じて、1、2、または3の「タイプ」値を追加できるようにしたいと思います。StringBuilderこれらのサイトのデータを連結しています。これで、サイトをとして保存できますがvarchar、この配列は数値を文字列に関連付けてそのように構築するように変更されることはないため、非常に便利です。

4

4 に答える 4

6

forの代わりにループを使用してくださいforeach

for(int i = 0; i < sites.Length; i++)
{
    // use sites[i]
}
于 2013-01-19T18:52:24.013 に答える
3

LINQのSelectを使用して、インデックスをコレクションに投影できます。

sites.Select((x, n) => new { Site = x, Index = n })
于 2013-01-19T18:55:24.973 に答える
2

これには辞書を使用できます- Dictionary<int, string>(またはDictionary<string, int>)。

var sitesWithId = new Dictionary<string, int>
{
  new { "http://foobar.com", 1},
  new { "http://asdaff.com", 2},
  new { "http://etc.com", 3}
}

もう1つのオプションは、List<string>とを使用IndexOfしてインデックスを見つけることです。

var sites = new List<string> {
    "http://foobar.com",
    "http://asdaff.com",
    "http://etc.com"
};

var foobarIndex = sites.IndexOf("http://foobar.com");

3番目のオプションは、配列の静的IndexOfメソッドを使用しArray、配列をまったく変更しないことです。

var foobarIndex = Array.IndexOf(sites, "http://foobar.com");
于 2013-01-19T18:53:27.880 に答える
1

forループで試してください。

for(int i = 0; i < sites.Length; i++)
{
    Console.WriteLine(sites[i]);
}

sites[]このような配列の要素に使用します。

sites[1]
sites[2]
sites[3]

Dictionary<TKey, TValue>または、Odedの提案として使用できます。

于 2013-01-19T18:55:04.973 に答える