C# 如何对列表进行排序<;字符串>;按姓名
在表格1中,我有:C# 如何对列表进行排序<;字符串>;按姓名,c#,.net,winforms,C#,.net,Winforms,在表格1中,我有: public List<string> imageList = new List<string>(); 但是它没有按顺序列出文件,因为它们在硬盘上 现在我试着这样做: this.imageList = from file in Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp") orderby file descending
public List<string> imageList = new List<string>();
但是它没有按顺序列出文件,因为它们在硬盘上
现在我试着这样做:
this.imageList = from file in Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp")
orderby file descending
select file.ToList();
但我在select上遇到错误:
错误2无法隐式转换类型
System.Collections.Generic.IEnumerable>
到System.Collections.Generic.List`。显式转换
存在(您是否缺少演员阵容?)
适当地包装您的查询。在当前编写时,您正试图将字符列表(对字符串调用
ToList()
的结果)转换为字符串列表,因为您实际上是对文件本身而不是对文件集合调用ToList()
this.imageList =
(from file in Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp")
orderby file descending
select file).ToList();
file
是一个字符串,它实现了IEnumerable
因此,file.ToList()
是一个列表
,您选择它作为查询结果。这将生成一个列表
的集合,这不是您想要的
您需要将查询用括号括起来,以便对查询本身调用.ToList()
。您已经(几乎)做到了。您遇到的问题是ToList
调用,它奇怪地也适用于string
s,因为它是一个IEnumerable
。相反,在对Linq查询的结果执行任何操作(如ToList
)之前,请确保在Linq查询周围写上括号
this.imageList =
(from file in Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp")
orderby file descending
select file).ToList();
Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp").OrderBy(f => f).ToList();
使用Directory.exe文件
请参见URL:我更喜欢方法语法而不是sql语法。在调用
.ToList()
之前先调用
或使用:
this.imageList =
(from file in Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp")
orderby file descending
select file).ToList();
Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp").OrderBy(f => f).ToList();
Directory.GetFiles(@"e:\webbrowserimages\", "*.bmp").OrderByDescending(f => f).ToList();