使用LINQ在Varray中添加值
本文关键字:添加 Varray LINQ 使用 | 更新日期: 2023-09-27 18:29:47
我有一个varray字符串:
string[] imgList = new[] { };
我检索文件列表:
DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.jpg");
我想使用LINQ将结果添加到我的varray中。有些像这样:
imgList = files.Where(x => x.FullName).ToList();
我该怎么做?
在查询中将Where
更改为Select
,将ToList()
更改为ToArray()
。
imgList = files.Select(x => x.FullName).ToArray();
类似这样的东西:
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()
会返回一个新数组。
有一个返回数组的方法,以及您正在使用的返回List<T>
的方法,所以请尝试:
imgList = files.Select(x => x.FullName).ToArray();
您的代码中有一些错误。
首先,您有一个不正确的字符串数组声明,
第二,您正在尝试将.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();