我有一个varray字符串:
string[] imgList = new[] { };我检索文件列表:
DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.jpg");我想使用LINQ添加我的varray结果。有些人是这样的:
imgList = files.Where(x => x.FullName).ToList();我怎么能这么做?
发布于 2013-08-30 07:54:31
就像这样:
DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.jpg");
string[] imgList = files.Select(p => p.Name).ToArray();
// or, without LINQ, probably a little faster:
string[] imgList = Array.ConvertAll(files, p => p.Name);请注意,在这两种情况下,您都不需要事先创建数组,因为Array.Convert/.ToArray()返回了一个新数组。
发布于 2013-08-30 07:53:15
代码中有一些错误。
首先,您有不正确的字符串数组声明,
其次,您正在尝试将.ToList()转换为字符串数组。所以试试这样的方法
string[] imgList = new string[] { };
DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.jpg");
imgList = files.Where(x => x.FullName == "myCondition").Select(x => x.FullName).ToArray();发布于 2013-08-30 07:53:52
有一个返回数组的方法,以及返回List<T>的方法,所以请尝试:
imgList = files.Select(x => x.FullName).ToArray();https://stackoverflow.com/questions/18527657
复制相似问题