我的一个 api 将返回 ICollection 结果,我想在我的代码中阅读它们而不使用 System.Linq。有可能吗?
添加更多---当我使用 Linq 时, ICollection.First().Value 很好..我想要的方式应该与不使用 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”。
如果你想模仿 First() 的功能,你需要为 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!:)