如何重写此代码,将字符串列表分配给字符串对象的集合?

Posted

技术标签:

【中文标题】如何重写此代码,将字符串列表分配给字符串对象的集合?【英文标题】:How can I rewrite this code assigning a List of String to a Collection of an Object of String? 【发布时间】:2020-12-26 06:04:51 【问题描述】:

如何重写此代码以将数组列表的元素一次分配给对象的元素?

List<string> fileEntries = new List<string>
(Directory.EnumerateFileSystemEntries("/storage/emulated/0/Download"));

FileLogs = new ObservableCollection<FileLog>  ;

foreach (string fileName in fileEntries)

    FileLogs.Add(new FileLog  File = fileName );

【问题讨论】:

【参考方案1】:

你的意思是这样的吗?:

FileLogs = new ObservableCollection<FileLog>(
    Directory.EnumerateFileSystemEntries("/storage/emulated/0/Download")
        .Select(fileName => new FileLog  File = fileName )
);

它使用在单个语句中接受IEnumerable&lt;FileLog&gt; 的构造函数创建一个ObservableCollection&lt;FileLog&gt;

它使用 LINQ Select 方法将从Directory.EnumerateFileSystemEntries 返回的IENumerable&lt;string 转换为IEnumerable&lt;FileLog&gt;

【讨论】:

让我在我的程序中尝试一下。 FileSystemEntries 中有多个文件。我只是不知道如何从文件列表中分配给我的对象列表。 @zawhtut:就像我向你展示的那样。此代码将从Directory.EnumerateFileSystemEntries 返回的每个字符串添加一个FileLogObservableCollection&lt;FileLog&gt; 所以。有没有不使用 LINQ 的方法?基本上它不能将 `IEnumerable 转换为 IEnumerable。 FileLog 对象只有一个字符串类型元素。只是好奇。 如果没有 LINQ,您必须使用循环手动遍历 IEnumerable&lt;string&gt;。这就是 LINQ 方法为您所做的。

以上是关于如何重写此代码,将字符串列表分配给字符串对象的集合?的主要内容,如果未能解决你的问题,请参考以下文章

将字符串重新分配给数组中的一组值列表

未分配给列表视图项的字符串

如何使用带有集合视图的简单列表

如何测试字符串包含列表中的元素并通过 Pandas 将目标元素分配给另一列

我正在尝试从另一个对象列表分配和输出到控制台字符串列表。但它继续重复字符串

如何将字符串对象分配给observable