我试图使用
找到我的数组元素的索引int[] arr = { 10, 20, 10 };
for ( int i; i,arr.length; i++)
{
int Tempval = arr[i];
index = Array.IndexOf(arr, Tempval);
console.writeline(index);
}
但它返回10的相同索引,即每次0。 我怎么能控制它.. ?? 请帮忙。
此致
答案 0 :(得分:0)
这样做:
int[] arr = { 10, 20, 10 };
for ( int i=0; i<arr.length; i++)
{
int Tempval = arr[i];
index = Array.IndexOf(arr, Tempval);
console.writeline(index);
}
答案 1 :(得分:0)
使用LINQ,您可以:
int[] arr = { 10, 20, 10 };
var result =
arr.Select((r, index) => new { Value = r, Index = index })
.GroupBy(item => item.Value)
.Where(grp => grp.Count() > 1)
.Select(r => new { Indexes = r.Select(t => t.Index).ToArray() })
.FirstOrDefault();
输出:
foreach (var value in result.Indexes)
Console.WriteLine(value);
输出将是:
0
2
答案 2 :(得分:-2)
你已经在使用循环而我是你的索引,为什么要再次找到索引?
int[] arr = { 10, 20, 10 };
for ( int i=0; i<arr.length; i++)
{
int Tempval = arr[i];
index = Array.IndexOf(arr, Tempval);
console.writeline(i);
}
如果您想要所有索引,
public IEnumerable<int> FindIndexes(int[] array, int value)
{
for (int i = 0; i < array.Length; i++)
{
int Tempval = array[i];
if (Tempval == value)
{
yield return i;
}
}
}
并致电FindIndexes(arr, 10);