我的一个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