c# - 无法将 void 转换为列表

标签 c# .net linq list

<分区>

我正在尝试编写我的第一个 c# 程序,但我无法继续收到以下错误。有人可以解释为什么我会收到此错误吗?任何东西在声明时都有类型,void 是从哪里来的?我正在 https://repl.it/languages/csharp 上编写代码如果这很重要。

using System;
using System.Linq;
using System.Collections.Generic;
class MainClass {
  public static void Main (string[] args) {
  List<string> mylist = new List<string>() { "2","1","2","3","3","4" };

  mylist=mylist.Sort();

  foreach(var item in mylist)
  {
      Console.Write(item.ToString());
  }
  }
}

错误:

Cannot implicitly convert type `void' to `System.Collections.Generic.List<string>'

最佳答案

List<T>.Sort返回 void因为它实际上修改了 List它被调用(它不返回新集合)。因此将方法的返回值分配给 List是编译错误。

如果您想要一种不修改基础集合的排序,请考虑使用 OrderByToList如果你想急于枚举结果。

关于c# - 无法将 void 转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075774/

相关文章:

c# - 我应该如何编写 XML 注释以避免在摘要和返回标记之间重复自己?

c# - 查看 Excel 是否处于 .NET 中的单元格编辑模式的解决方法

c# - 在 C# 中将 WPF 属性绑定(bind)到 ApplicationSettings 的最佳方法?

.net - NuGet 2.8.6 导致对 .NET 4.5+ 的依赖?

c# - 使用 LINQ to SQL 搜索整个数据库

c# - Linq:执行链查询顺序

c# - 更改值适用于预加载但不适用于 linq 和 ef 中的惰性加载

c# - 将字符串拆分为一组分组数组

c# - LINQ OrderBy 仅适用于第二个属性

c# - 使用 CodeDomProvider 在 Debug模式下编译源代码