我將現有的Windows Phone 8應用程序轉換爲WP 7.1。但是我遇到了一個錯誤錯誤'System.Array'不包含'FindIndex'的定義
'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'不包含'FindIndex'的定義
'System.Array' does not contain a definition for 'FindIndex'
在這一行。我錯過了什麼?
index = Array.FindIndex(AnswerLevelArr, s => s.Contains(CurrentFileName));
Array.FindIndex Method (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();
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
啊..我明白了。你有任何建議,像這樣的快速解決方法? – PutraKg 2013-03-07 08:20:48
我嘗試了第一個,但它說'System.Array不包含Select ...的定義'第二個不包含SkipWhile的定義。像這樣的簡單陳述可以工作嗎? 'index = Array.IndexOf(AnswerLevelArr,CurrentFileName);' – PutraKg 2013-03-07 09:02:08
您必須在文件的頂部添加'using System.Linq;'。 – 2013-03-07 09:04:05