C#Linq - 无法将IEnumerable <string>隐式转换为List <string>

JL.*_*JL. 18 c# linq

我有一个像这样定义的List:

public List<string> AttachmentURLS;
Run Code Online (Sandbox Code Playgroud)

我正在向列表添加项目,如下所示:

instruction.AttachmentURLS = curItem.Attributes["ows_Attachments"].Value.Split(';').ToList().Where(Attachment => !String.IsNullOrEmpty(Attachment));
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:无法隐式将IEnumerable转换为List

我究竟做错了什么?

smo*_*oak 40

Where方法返回一个IEnumerable<T>.尝试添加

.ToList()
Run Code Online (Sandbox Code Playgroud)

到底如此:

instruction.AttachmentURLS = curItem.Attributes["ows_Attachments"]
  .Value.Split(';').ToList()
  .Where(Attachment => !String.IsNullOrEmpty(Attachment))
  .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 是的,你可以删除它. (4认同)
  • 得到这个错误,谷歌搜索它,显然我已经赞成它并且以前来过这里,我需要更多的咖啡因。 (2认同)

juh*_*arr 7

.ToList()像这样移动到最后

instruction.AttachmentURLS = curItem
    .Attributes["ows_Attachments"]
    .Value
    .Split(';')
    .Where(Attachment => !String.IsNullOrEmpty(Attachment))
    .ToList();
Run Code Online (Sandbox Code Playgroud)

Where扩展方法返回IEnumerable<string>并将Where在数组上工作,因此在ToList之后不需要Split.