在IAsyncEnumerable中使用linq类型方法的正确方法是什么? - c#

.NET Core打包的IAsyncEnumerable似乎没有任何包含的linq支持。能够执行诸如ToList和Count之类的简单事情的正确方法是什么?

参考方案

这是一个很好的问题,因为IAsyncEnumerable<T>上的IntelliSense中几乎没有有用的项目,开箱即用的是默认.NET Core应用程序具有的隐式框架引用。

预计您将添加System.Linq.Async(称为Ix Async,see here)程序包,如下所示:

<PackageReference Include="System.Linq.Async" Version="4.0.0" />

然后,您可以使用CountAsyncToListAsync

async IAsyncEnumerable<int> Numbers()
{
    yield return 1;
    await Task.Delay(100);
    yield return 2;
}

var count = await Numbers().CountAsync();
var myList = await Numbers().ToListAsync();

正如评论中指出的那样,这些方法本身并不是很有用,应在使用更强大的功能并将数据保持为异步流(如SelectAwaitWhereAwait等)后使用它们。 ...

将谓词<T>转换为Func <T,bool> - c#

我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…

如何在JavaScript中将多个h1元素替换为h1,h2,h3,h4,h5,h6? - javascript

@foreach (var item in Model) { <div class="panel-heading"> <h1> <a href="#">@item.Title</a> </h1> </div> } 结果; (每页发布数:6)<…

jQuery和Gridview更新面板不起作用 - c#

我必须按照某些给定条件实现gridview的闪烁:gridview row blinking based on some conditions我能够成功实现它,但是随后我被要求在5秒钟内自动刷新gridview,为此我使用了ajax更新面板和计时器,但随后出现如下新的JavaScript错误:码: <form id="form1" …

Asp.net发送信息表单到页面 - c#

我正在尝试使用弹出窗口中的新信息更新旧页面。到目前为止,我尝试过将结果保存在会话中Session["Data"] = DLvrijecampingplaatsen.SelectedItem; 然后当它达到Page_Load时,将其重新加载回旧页面if (Session["Data"] != null) { LBkies…

WPF AvalonDock添加文档 - c#

我有一个带有AvalonDock的窗口。在启动时,将打开一个文档,其中充满LocControllers用户控件(LocControllersViewModel)。现在,当双击LocController时,我想让LocController用户控件在新文档中打开。因此,第一个文档始终是概述,充满了LocController用户控件,而其他文档则在双击后添加。我已…