我的一個api將返回ICollection結果,我想在不使用System.Linq的情況下在我的代碼中讀取它們。有可能嗎?如何閱讀Collection.System.Collections.Generic.ICollection項目
添加更多--- 當我使用Linq時,ICollection.First()。值很好..我想要的方式應該像使用Linq一樣工作。
感謝 帕
我的一個api將返回ICollection結果,我想在不使用System.Linq的情況下在我的代碼中讀取它們。有可能嗎?如何閱讀Collection.System.Collections.Generic.ICollection項目
添加更多--- 當我使用Linq時,ICollection.First()。值很好..我想要的方式應該像使用Linq一樣工作。
感謝 帕
是的,你可以簡單地使用foreach循環。
編輯:要訪問特定的元素,您可以像使用其他答案一樣使用索引訪問。如果你需要一個特定的條件下,你可以遍歷集合
ICollection<TYPE> collection = YourApi();
TYPE result;
foreach(var x in collection)
{
if(your condition is true)
{
result = x;
break;
}
}
// check if result is not null and use it
一樣讀取元素/項目? –
使用foreach
循環:
foreach(var elem in mycollection)
{
// do stuff
}
編輯:
對於ICollection.First()
,你可以這樣做:
if (mycollection.Count > 0)
var firstItem = mycollection[0];
ICollection
延伸IEnmerable
。這意味着它返回一個枚舉器,並可以循環使用ForEach
循環。這不需要Linq
。
任何支持LINQ查詢的對象也支持foreach。您可以使用的foreach:
foreach(item in collection)
{
//work with item
}
正如其他人指出的那樣,你可以使用的foreach來訪問所有元素的收藏。你一直說「我想讀取特定元素就像ICollection.First()。Value」。
如果你想模仿優先()的功能,你需要編寫一個擴展方法ICollection的:
public static class ExMethods
{
public static object First<T>(this ICollection<T> collection)
{
foreach (var x in collection)
{
return x;
}
//throw exception if colletion is empty
}
}
或者只是使用LINQ的! :)
說明「閱讀」。? –
爲什麼不只是一個基本的'IEnumerable'? – Arran
'.First'是LINQ的一部分....你想要沒有LINQ的LINQ?! – Arran