LINQ重写博客垃圾图片回收算法
博客后台的管理模块近期实现了一项功能,该功能专门负责扫描图片上传文件夹中所有未被引用的博客图片。这一功能的实现思路相当直观且巧妙。
我们从所有的博客模型中出文章所使用的图片文件名,排除掉站外引用的部分,并将这些文件名存入一个字符串列表 `usedPicList`。接着,我们遍历图片上传文件夹,将所有图片文件的信息存入 `fiAllPicList`。这个过程就像是在收集所有的图片档案。
然后,我们需要比较 `usedPicList` 和 `fiAllPicList`,找出那些在 `fiAllPicList` 中存在,但在 `usedPicList` 中缺失的图片。这些图片就是那些未被任何文章引用的“垃圾”图片。原先的比较算法采用的是传统方法,过程相对繁琐,需要两重循环和一个标志位来解决问题。
传统的实现方式代码如下:
```csharp
List
for (int k = 0; k < fiAllPicList.Length; k++) {
bool found = false;
for (int l = 0; l < usedPicList.Count; l++) {
if (fiAllPicList[k].Name == usedPicList[l].ToString()) {
found = true;
break;
}
}
if (!found) {
garbagePicList.Add(fiAllPicList[k]);
}
}
```
```csharp
List
var query = from pic in fiAllPicList where !usedPicList.Contains(pic.Name) select pic;
garbagePicList = query.ToList();
```
通过LINQ的查询表达式,我们简洁地完成了复杂的筛选操作。这样的代码不仅易于理解,而且提高了代码的可读性和可维护性。现在,我们可以轻松地找出那些未被引用的垃圾图片,并进行相应的处理。这就是博客后台管理模块的新功能,它让我们的博客管理更加高效、有序。
编程语言
- LINQ重写博客垃圾图片回收算法
- javascript创建含数字字母的随机字符串方法总结
- js判断传入时间和当前时间大小实例(超简单)
- mysql 登录时闪退的问题解决方法
- 详解webpack打包vue时提取css
- PHP实现指定字段的多维数组排序函数分享
- 浅谈NodeJS中require路径问题
- 修复断电等损坏的SQL 数据库
- 改进一下asp自带的formatNumber函数
- 微信小程序媒体组件详解(视频,音乐,图片)
- php约瑟夫问题解决关于处死犯人的算法
- js判断某个方法是否存在实例代码
- PHP实现的ID混淆算法类与用法示例
- jsp输出九九乘法表的简单实例
- 详解vue express启动数据服务
- 解决vue A对象赋值给B对象,修改B属性会影响到A的