我正在尝试使用LINQ To Objects创建一个查询,该查询将按文件名索引文件,并将二进制数据映射为byte[]
。
然而,我找不到一种“简洁”的方法来做到这一点。我希望得到类似于Dictionary<T,K>
的输出。
以下是我目前拥有的内容。示例delimFileNames="1.jpg|2.jpg"
//Extract filenames from filename string
//and read file binary from file
//select result into a filename indexed collection
var result = from f in delimFileNames.Split(Constants.DDS_FILENAME_SEPARATOR)
let filePath = Path.Combine(ddsClient.WorkingDirectory, f)
let fileData = File.ReadAllBytes(filePath)
select new KeyValuePair<string, byte[]>(f, fileData);
return result.ToDictionary(kvp => kvp.Key, kvp=> kvp.Value);
主要的难点是为什么我不能使用无参数的ToDictionary()或直接转换。欢迎提出任何建议或改进上述方法的替代方案。