我在C#中有一个字符串数组,如下所示:
string[] sites = new string[] {
"http://foobar.com",
"http://asdaff.com",
"http://etc.com"
};
我在foreach
中使用此数组,我希望能够添加“类型”值1,2或3,具体取决于我当前正在迭代的网站。我正在使用这些网站中的StringBuilder
连接数据。现在,我可以将网站存储为varchar
,但它会非常简洁,因为此数组永远不会更改为将数字与字符串相关联并以此方式构建。
答案 0 :(得分:6)
使用for
循环代替foreach
:
for(int i = 0; i < sites.Length; i++)
{
// use sites[i]
}
答案 1 :(得分:3)
LINQ的Select可用于将索引投影到集合上。
sites.Select((x, n) => new { Site = x, Index = n })
答案 2 :(得分: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}
}
另一个选择是使用List<string>
和IndexOf
来查找索引。
var sites = new List<string> {
"http://foobar.com",
"http://asdaff.com",
"http://etc.com"
};
var foobarIndex = sites.IndexOf("http://foobar.com");
第三个选项,使用Array
的静态IndexOf
方法,而不是根本不更改数组:
var foobarIndex = Array.IndexOf(sites, "http://foobar.com");
答案 3 :(得分:1)