を呼び出すArray.indexOf(input Array,"A")
と、入力配列に「A」のインデックスが付けられます。ただし、同様の関数を使用して、入力配列に「A」が複数回出現する場合に、配列内の「A」のすべてのインデックスを取得する方法。
質問する
242 次
3 に答える
3
int[] indexes = input.Select((item, index) => new { item, index })
.Where(x => x.item == "A")
.Select(x => x.index)
.ToArray();
于 2012-09-24T10:00:36.880 に答える
0
Array
クラスから次のメソッドを使用できます
public static int FindIndex<T>(
T[] array,
int startIndex,
Predicate<T> match)
startIndexで始まり、最後の要素で終わる配列を検索します。
ただし、ループで使用する必要があり、次の反復ごとにstartIndex
値が割り当てられます= previousIndexFound + 1
。もちろん、それが配列の長さよりも短い場合。
于 2012-09-24T10:03:42.490 に答える
0
Array
次のように、クラスの拡張メソッドを記述できます。
public static List<Int32> IndicesOf<T>(this T[] array, T value)
{
var indices = new List<Int32>();
Int32 startIndex = 0;
while (true)
{
startIndex = Array.IndexOf<T>(array, value, startIndex);
if (startIndex != -1)
{
indices.Add(startIndex);
startIndex++;
}
else
{
break;
}
}
return indices;
}
使用例:
var symbols = new Char[] { 'a', 'b', 'c', 'a' };
var indices = symbols.IndicesOf('a');
indices.ForEach(index => Console.WriteLine(index));
于 2012-09-24T10:16:24.127 に答える