C#重新排序Directory.GetFiles来自另一个对象的列表

用户名

我想从特定的文件夹中获取文件,以便在轮播中显示它们,所以我正在使用:

string[] files = Directory.GetFiles("path/to/my/folder")

但是,文件按其名称在 files[]

在我的页面(强类型视图)中,我Model包含许多属性,其中包括一个List<FileModel> filesToDisplay由图片填充的要显示的属性AFileModel是一个自定义模型,其中包含名称,大小,布尔值IsMain和其他一些图片属性。

另一方面,该filesToDisplay列表是从我的数据库中填充的,我将在其中搜索必须显示的图片。所有图片都在同一目录中,但我不能总是显示该目录中的所有图片;这就是为什么我要搜索要显示的数据库。

我的目标是在轮播中显示文件:

  • 随着图片IsMain在第一位置是真实的。总是一个且只有一个画面,其中IsMain是真实的
  • 然后,作为第二图像,所述第一图像,其中IsMain为假filesToDisplay
  • 然后作为第三picute,所述图像Seconde系列其中IsMain为假filesToDisplay

等等...
当然,顺序filesToDisplay可以(并且几乎总是)与files[]

所以,我想做这样的事情:

files.OrderBy(filesToDisplay.IsMain).ThenBy(filesToDisplay(x => !x.IsMain))

这当然是不可能的。

如何在“正确的” C#中表达它?谢谢你的帮助 !

(是的,我已经看过这个SO问题,或者这个问题非常接近我的问题,但是我无法适应我的问题的答案)。对不起,新手问题。

麦克斯

我的理解是,除了希望IsMain首先显示之外,您希望排序后的文件与要显示的文件具有相同的顺序。我认为该代码应满足该要求;

       string[] files = Directory.GetFiles("path/to/my/folder");

        var sortedFiles = (from o in filesToDisplay
                              join i in files
                              on o.Name equals Path.GetFileName(i)
                              orderby o.IsMain descending 
                              select i).ToArray();

这将IsMain首先对排序后的文件进行排序,其中总是有一个文件,以便转到数组中的第一个元素,然后其余排序通过LINQ连接进行,其中LINQsortedFiles序列使用序列中的现有filesToDisplay顺序。

(这假定FileModel保存,FileName并且其中的每个条目string[] files都是一个包含文件名的filePath。
例如,FileModel FileName:Picture1.jpg,files [0]:C:/RandomPath/Images/Picture1.jpg,因为您需要一个值来链接每个文件files[]FileModel放在中filesToDisplay。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#空对象属性来自另一个类的列表

使用另一个复杂对象列表对复杂对象列表进行排序 C#

排序列表对象与另一个对象

C#对包含一个对象的另一个列表的对象的列表进行排序

在 C# 中可以用另一个列表对象替换列表对象

按另一个对象列表排列对象列表,按 id 排序

从另一个列表中的列表中的对象获取最大值[C#]

使用来自另一个对象(线程)的数据重新绘制JPanel

通过使用Java比较另一个列表排序对象列表

根据另一个简短列表python对对象列表进行排序

如何用Java中的另一个对象的属性对对象列表进行排序?

C#从另一个列表更新列表

asp.net c# linq 根据来自另一个列表的 id 从模型生成列表

c# - 从另一个 DLL 获取 Type 对象列表

按在另一个列表中找到的值对列表进行排序C#

检查列表是否根据另一个列表排序 C#

C#从另一个列表的值对列表进行排序

根据C#中的另一个对象数组对一个对象数组进行排序

使用对象的参数从另一个构造函数重新调整数组列表

以与另一个数组相同的顺序对列表对象进行排序

根据取自另一个类的值对对象列表进行排序

如何根据另一个列表的排序重新排序列表?

如何根据另一个活动的可排序列表对列表进行重新排序?

用另一个列表对列表进行排序

根据另一个列表对列表进行排序

排序python列表依据另一个列表

基于另一个较短列表的列表排序

从另一个列表ID对列表进行排序

根据另一个列表对列表进行排序