无法将void转换为列表

时间:2017-02-06 19:29:14

标签: c# .net linq list

我正在尝试编写我的第一个c#程序,但我无法在下面得到错误。有人可以解释为什么我收到此错误?声明时,一切都有一种类型,空隙来自哪里?如果重要的话,我正在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>'

2 个答案:

答案 0 :(得分:6)

// followers = { <user-id-1>: true, <user-id-2>: true, ... } const fanout = {}; const post = { text: 'foo', timestamp: firebase.database.ServerValue.TIMESTAMP }; Object.keys(followers).map((key) => { fanout[`timeline/${key}/${postId}`] = post; }); firebase.database().ref().update(fanout); 返回List<T>.Sort,因为它实际修改了它被调用的void(它没有返回新的集合)。因此,将方法的返回值分配给List是编译错误。

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

答案 1 :(得分:2)

mylist.Sort();未返回List,它返回void,您不应将其分配给列表。 致电Sort后,您的整个清单已经过了。