gpt4 book ai didi

c# - 获取 IEnumerable 项的第一个元素

转载 作者:太空狗 更新时间:2023-10-29 18:16:50 24 4
gpt4 key购买 nike

我要返回一个 IEnumerable<object[]>来自使用 yield return 的函数的元素在一个循环中。

public static IEnumerable<object[]> GetData()
{
...

connection.Open();

using (OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
object[] array = new object[dr.FieldCount];
dr.GetValues(array);
yield return array;
}
}

connection.Close();
}

在不使用循环的情况下检索第一个元素的最佳方法是什么?

var result = Adapter.GetData();

最佳答案

简而言之:

enumerator=result.GetEnumerator();
enumerator.MoveNext();
enumerator.Current;

这就是 foreach 在循环中迭代所有元素的作用。

正确的做法:

using (IEnumerator<object[]> enumerator = result.GetEnumerator()) {
if (enumerator.MoveNext()) e = enumerator.Current;

使用 LINQ:

var e = result.First();

var e = result.FirstOrDefault(default);

还有:

var e = result.ElementAt(0);

关于c# - 获取 IEnumerable 项的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828185/

24 4 0