既存の Windows Phone 8 アプリを WP 7.1 に変換しています。ただし、エラーが発生しました
'System.Array' does not contain a definition for 'FindIndex'
この行で。私は何が欠けていますか?
index = Array.FindIndex(AnswerLevelArr, s => s.Contains(CurrentFileName));
既存の Windows Phone 8 アプリを WP 7.1 に変換しています。ただし、エラーが発生しました
'System.Array' does not contain a definition for 'FindIndex'
この行で。私は何が欠けていますか?
index = Array.FindIndex(AnswerLevelArr, s => s.Contains(CurrentFileName));
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();
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;
}
からArray.FindIndex<T> Method (T[], Predicate<T>)
Version Information
Windows Phone OS
Supported in: 8.0
このメソッドはサポートされていないようですWindows Phone 7.1