C# 确定我在数组中的位置

C# 确定我在数组中的位置,c#,.net,arrays,stringbuilder,C#,.net,Arrays,Stringbuilder,我在C中有一个字符串数组,如下所示: string[] sites = new string[] { "http://foobar.com", "http://asdaff.com", "http://etc.com" }; 我在foreach中使用这个数组,我希望能够添加类型值1、2或3,这取决于我当前迭代的站点。我正在将这些站点的数据与StringBuilder连接起来。现在,我可以将该站点存储为varchar,但它将非常整洁,因为此数组永远不会更改为将数字与字符串

我在C中有一个字符串数组,如下所示:

string[] sites = new string[] {
    "http://foobar.com",
    "http://asdaff.com",
    "http://etc.com"
};
我在foreach中使用这个数组,我希望能够添加类型值1、2或3,这取决于我当前迭代的站点。我正在将这些站点的数据与StringBuilder连接起来。现在,我可以将该站点存储为varchar,但它将非常整洁,因为此数组永远不会更改为将数字与字符串关联,并以这种方式构建它。

使用for loop而不是foreach:

使用for循环代替foreach:


你可以为此使用字典-字典或字典

第三个选项,使用Array的静态方法,并且根本不更改数组:

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

你可以为此使用字典-字典或字典

第三个选项,使用Array的静态方法,并且根本不更改数组:

var foobarIndex = Array.IndexOf(sites, "http://foobar.com");
尝试循环

或者您可以使用字典作为Oded。

尝试使用循环

或者您可以将字典用作Oded。

可以使用LINQ将索引投影到集合上

sites.Select((x, n) => new { Site = x, Index = n })
LINQ可用于将索引投影到集合上

sites.Select((x, n) => new { Site = x, Index = n })

你从哪里得到类型值,你想用它做什么?我使用sharpSVN来获得svn数据,但我希望能够为我们的每一笔回购交易关联一个int值。本质上,我希望SVN数据能够使用夜间控制台应用程序自动插入数据库,我们可以在网站上使用该应用程序跟踪最近的代码库更改。我可以只添加与varchar关联的站点,但我认为在sql server中只关联一个int来识别哪个站点是很酷的,这样,如果人们只想看到站点上的更改,我就可以在前端进行漂亮的过滤svn://foo/trunk. 我认为字典在这种情况下是完美的!如果您将int与字典中的字符串相关联,那么您实际上是在设置一个数组,从声音上看,该数组的查找性能很差。如果数组不改变顺序,只需对数组进行索引,并使用for循环对索引进行迭代。这就是数组的用途。你从哪里获得类型值,你想使用它做什么?我使用sharpSVN来获取svn数据,但我希望能够为每个repo关联一个int值。本质上,我希望SVN数据能够使用夜间控制台应用程序自动插入数据库,我们可以在网站上使用该应用程序跟踪最近的代码库更改。我可以只添加与varchar关联的站点,但我认为在sql server中只关联一个int来识别哪个站点是很酷的,这样,如果人们只想看到站点上的更改,我就可以在前端进行漂亮的过滤svn://foo/trunk. 我认为字典在这种情况下是完美的!如果您将int与字典中的字符串相关联,那么您实际上是在设置一个数组,从声音上看,该数组的查找性能很差。如果数组不改变顺序,只需对数组进行索引,并使用for循环对索引进行迭代。这就是阵列的用途。太棒了!字典正是我要找的!令人惊叹的字典正是我要找的!
for(int i = 0; i < sites.Length; i++)
{
    Console.WriteLine(sites[i]);
}
sites[1]
sites[2]
sites[3]
sites.Select((x, n) => new { Site = x, Index = n })