将EnumerableRowCollection <string>转换为List <string>

Mei*_*idi 11 c# linq

我试图在函数中返回此集合:

List<string> codes = ( from q in Data.AsEnumerable() select q.Field<string>("START") );
return codes;
Run Code Online (Sandbox Code Playgroud)

抛出错误:

Cannot implicitly convert type 'System.Data.EnumerableRowCollection<string>' to 'System.Collections.Generic.List<string>'
Run Code Online (Sandbox Code Playgroud)

什么是退回此类收藏品的最佳方式?

Lee*_*Lee 24

由于EnumerableRowCollection <TRow>实现,IEnumerable<T>您可以ToList()在最后添加一个:

using System.Linq;

List<string> bankCodes = ( from q in QueueData.AsEnumerable() select q.Field<string>("START") ).ToList();
Run Code Online (Sandbox Code Playgroud)

或者

List<string> bankCodes =  QueueData.AsEnumerable()
    .Select(r => r.Field<string>("START"))
    .ToList();
Run Code Online (Sandbox Code Playgroud)

  • @Meidi - 您需要在文件顶部添加`using System.Linq;`指令. (9认同)

Sac*_*hin 5

您需要使用.ToList()它将其转换为列表,所以尝试这样的事情.

List<string> bankCodes = ( from q in QueueData.AsEnumerable() select q.Field<string>("START")).ToList();
Run Code Online (Sandbox Code Playgroud)