将字符串从数组转换为 int
Converting string to int from array
我正在尝试打印出数组元素的确切位置,但结果很短
string[] ocean = { "Beebo", "Jeff","Arthur", "Nemo", "Dory" };
foreach(string fish in ocean)
{
if (fish == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!",int.Parse(fish));
return;
}
}
Console.WriteLine("He was not here");
我需要将 {0} 标记替换为该元素的数组索引,在本例中为 3,但我在 int.Parse(fish) 处失败,这显然不起作用
实现此功能的最简单方法是切换到 for
循环
for(int i = 0; i < ocean.Length; i++)
{
if (ocean[i] == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", i);
return;
}
}
Console.WriteLine("He was not here");
或者您可以在 foreach
中跟踪索引
int index = 0;
foreach(string fish in ocean)
{
if (fish == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", index);
return;
}
index++;
}
Console.WriteLine("He was not here");
或者您可以完全避免循环并使用 Array.IndexOf
。如果找不到该值,它将 return -1。
int index = Array.IndexOf(ocean, "Nemo");
if(index >= 0)
Console.WriteLine("We found Nemo on position {0}!", index);
else
Console.WriteLine("He was not here");
这是一个 Linq 解决方案
var match = ocean.Select((x, i) => new { Value = x, Index = i })
.FirstOrDefault(x => x.Value == "Nemo");
if(match != null)
Console.WriteLine("We found Nemo on position {0}!", match.Index);
else
Console.WriteLine("He was not here");
我可能正在用 LINQ 编写可能的解决方案,希望它能有所帮助。该错误是由于数组中的索引从零开始显示 3
string[] ocean = { "Beebo", "Jeff","Arthur", "Nemo", "Dory" };
ocean.Select((x, i) => new { Value = x, Index = i }).ForEach(element =>
{
if (element.Value == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!",element.Index);
}
});
我正在尝试打印出数组元素的确切位置,但结果很短
string[] ocean = { "Beebo", "Jeff","Arthur", "Nemo", "Dory" };
foreach(string fish in ocean)
{
if (fish == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!",int.Parse(fish));
return;
}
}
Console.WriteLine("He was not here");
我需要将 {0} 标记替换为该元素的数组索引,在本例中为 3,但我在 int.Parse(fish) 处失败,这显然不起作用
实现此功能的最简单方法是切换到 for
循环
for(int i = 0; i < ocean.Length; i++)
{
if (ocean[i] == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", i);
return;
}
}
Console.WriteLine("He was not here");
或者您可以在 foreach
int index = 0;
foreach(string fish in ocean)
{
if (fish == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", index);
return;
}
index++;
}
Console.WriteLine("He was not here");
或者您可以完全避免循环并使用 Array.IndexOf
。如果找不到该值,它将 return -1。
int index = Array.IndexOf(ocean, "Nemo");
if(index >= 0)
Console.WriteLine("We found Nemo on position {0}!", index);
else
Console.WriteLine("He was not here");
这是一个 Linq 解决方案
var match = ocean.Select((x, i) => new { Value = x, Index = i })
.FirstOrDefault(x => x.Value == "Nemo");
if(match != null)
Console.WriteLine("We found Nemo on position {0}!", match.Index);
else
Console.WriteLine("He was not here");
我可能正在用 LINQ 编写可能的解决方案,希望它能有所帮助。该错误是由于数组中的索引从零开始显示 3
string[] ocean = { "Beebo", "Jeff","Arthur", "Nemo", "Dory" };
ocean.Select((x, i) => new { Value = x, Index = i }).ForEach(element =>
{
if (element.Value == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!",element.Index);
}
});