List 拆分集合与 读写XML配置文件
有时候会出现需要将一个集合分成所干个集合,依次再对每组集合进行处理,想了想,用 Linq 处理就很方便
var times = Math.Ceiling((double)lis.Count() / 40); var temp1 = lis.Skip(0).Take(40); //第一组 var temp2 = lis.Skip(40).Take(40); //第二组 for (int i = 0; i < times; i++) { //每一组 var ary = lis.Skip(i * 40).Take(40); //处理每小组数据
}
//合并集合
var list = temp1.union(temp2).ToList();
对于Web程序而言,一般情况需要的一些设备字段之类的往往是写在config 配置文件中,通过 ConfigurationManager.AppSettings["XXX"]读取,这样使用无可厚非,当然有些项目来说,配置的参数相对来说比较多,直接放在web.config中可能不易读,对于这种情况,将其全部写在xml文件中,统一管理,也比较方便,这两种方式,殊途同归。对于XML文件的读写,比较基础。
比如新建一xml 文件,将对应数据配置到XML中后,然后通过Linq to xml 进行读取操作,不怎么高大上
//取值 public static Dictionary<string, string> GetValue() { Dictionary<string, string> des = new Dictionary<string, string>(); try { var obj = new object(); lock (obj) { var exePath = AppDomain.CurrentDomain.BaseDirectory.ToString(); string Path = exePath + "Config" + "\\ArcConfig.xml"; XElement root = XElement.Load(Path); var quests = from c in root.Elements() select c; foreach (var item in quests) { des.Add(item.Name.LocalName, item.Value); } return des; } } catch (Exception ex) { LogHelper.ErrLogQueue.Enqueue(ex.Message + "--" + ex.StackTrace); return des; } }
拿到字典值后,给字段对应赋值即可,这里赋值可以为成员字段,也可以放在内部缓存中
//Cache赋值-内存 public static void SetConfigValue(Dictionary<string, string> dic) { try { //映射成员字段//PropertyInfo[] propertyInfos =GetType().GetProperties(); foreach (var item in dic) { //item.SetValue(this, dic[item.Name]); --遍历 CacheHelper.SetCache(item.Key, item.Value); } } catch (Exception ex) { LogHelper.ErrLogQueue.Enqueue(ex.Message + "---" + ex.StackTrace); } }
如此 比较轻便 灵活,使用的时候比较方便,另外配置文件放在一起,也比较便于管理
大家好,我是新来的小白,文未佳,却已创。转载请声明(博客园-郎中令)出处,谢谢
---市人皆大笑,举手揶揄之(手动链接博客园)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构