-1

我的一个 api 将返回 ICollection 结果,我想在我的代码中阅读它们而不使用 System.Linq。有可能吗?

添加更多---当我使用 Linq 时, ICollection.First().Value 很好..我想要的方式应该与不使用 Linq 的方式相同。

谢谢帕万

4

5 回答 5

5

是的,您可以简单地使用 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
于 2013-11-01T09:09:00.463 回答
1

使用foreach循环:

foreach(var elem in mycollection)
{
  // do stuff
}

编辑 :

你可以这样ICollection.First()做:

if (mycollection.Count > 0)
    var firstItem = mycollection[0];
于 2013-11-01T09:12:52.320 回答
1

ICollection延伸IEnmerable。这意味着它返回一个枚举器,并且可以通过循环进行ForEach循环。这不需要Linq.

于 2013-11-01T09:13:06.007 回答
0

任何支持 LINQ 查询的对象也将支持 foreach。您可以使用 foreach:

foreach(item in collection)
{
    //work with item
}
于 2013-11-01T09:15:25.533 回答
0

正如其他人指出的那样,您可以使用 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!:)

于 2013-11-01T10:04:47.593 回答