1

既存の Windows Phone 8 アプリを WP 7.1 に変換しています。ただし、エラーが発生しました

'System.Array' does not contain a definition for 'FindIndex'

この行で。私は何が欠けていますか?

index = Array.FindIndex(AnswerLevelArr, s => s.Contains(CurrentFileName));
4

3 に答える 3

3

Array.FindIndex メソッド (T[]、Predicate)は、Windows Phone 7.1 ではサポートされていません。

バージョン情報

Windows Phone OS
サポート対象: 8.0

代わりに、以下を使用できますLinq(必ずusing System.Linq;ファイルの先頭に追加してください)。

index = AnswerLevelArr
    .Select((i, position) => new { Item = i, IndexOf = position })
    .First(s => s.Item.Contains(CurrentFileName)).IndexOf;

また:

int index=0;
var result = AnswerLevelArr.SkipWhile((s, ind) =>
{
    if (!s.Contains(CurrentFileName))
    {
        index++;
        return false;
    }
    else
    {
        return true;
    }
}).First();
于 2013-03-07T08:17:14.800 に答える
1

msdnによると

public static int FindIndex<T>(
    T[] array,
    Predicate<T> match
)

http://msdn.microsoft.com/en-us/library/03y7c6xy.aspx

タイプを含める必要がありますか?

編集:index = Array.FindIndex<T>(AnswerLevelArr, s => s.Contains(CurrentFileName));

EDIT2:歴史のために左上に残されましたが、さらに調べた後は間違っています...

メソッドに類似した検索インデックスが必要な場合は、オーバーライドを提供できます

int FindIndex(string s)
{
    int size = this.length;
    for(int i = 0; i < size; i++)
    {
    if(this[i] = s)
        return i;
     }
     return -1;
}
于 2013-03-07T08:11:01.677 に答える
1

からArray.FindIndex<T> Method (T[], Predicate<T>)

Version Information
Windows Phone OS
Supported in: 8.0

このメソッドはサポートされていないようですWindows Phone 7.1

于 2013-03-07T08:18:49.803 に答える