我正在创建一个照片和视频查看器,每个照片和视频查看器中都有一个要插入元素的数组,我想过滤其格式以将其存储在第三个列表中
我有一个播放器,其中有一个阵列和用于照片和视频的互通,然后仅在照片部分中您只能添加照片,而在视频中您只能添加视频,那么我想做的是在第三个数组中,我添加了照片或视频并对其进行过滤,以查找文件的扩展名以将其添加到相应的数组中。
不按特定顺序插入文件
string fileList = { "Animals.jpg", "cars.mp4", "planes.mp4", "landscape.jpg", "gameplay.mp4", "freind.mp4", "grildfriend.jpg", "travel.mp4", "school.jpg", "youtube.mp4", "asdada.jpg"};
然后将是这样:
string PhotoList[] = { "Animals.jpg", "landscape.jpg", "grildfriend.jpg", "school.jpg","asdada.jpg" };
string VideoList[] = { "cars.mp4", "planes.mp4", "gameplay.mp4" "freind.mp4", "travel.mp4", "youtube.mp4" };
到目前为止,我只能在一个数组中连接两个数组,但这保持了前两个的顺序
答案 0 :(得分:0)
如果您的第一行是一个字符串数组,则下面的方法应该可以将您的数组查询为两个不同的数组。您还需要为System.Linq添加using语句。
var pictures = fileList.Where(p => p.IndexOf(".jpg") > 0);
var videos = fileList.Where(v => v.IndexOf(".mp4") > 0);
答案 1 :(得分:0)
类似这样的东西:
var photoExt = new HashSet<string>{".jpg"};
var videoExt = new HashSet<string>{".mp4"};
string[] fileList = new [] { "Animals.jpg", "cars.mp4",
"planes.mp4", "landscape.jpg",
"gameplay.mp4", "freind.mp4",
"grildfriend.jpg", "travel.mp4",
"school.jpg", "youtube.mp4", "asdada.jpg"};
string[] photos = fileList.Where(f => photoExt.Contains(Path.GetExtension(f))).ToArray();
string[] videos = fileList.Where(f => videoExt.Contains(Path.GetExtension(f))).ToArray();