StandardPda/MES.Service/service/BasicData/MesRohInManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
StandardPda/MES.Service/util/LinqThreadSafeExtensions.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
StandardPda/MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,6 +1,7 @@ using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using MES.Service.util; using SqlSugar; namespace MES.Service.service.BasicData; @@ -152,7 +153,7 @@ private List<MesRohInData> GetMesRohInDatas( List<ErpRohinData> erpRohinDatas, string type) { return erpRohinDatas.Select(s => return erpRohinDatas.DistinctByConcurrent(x => x.id).Select(s => { var entity = new MesRohInData { StandardPda/MES.Service/util/LinqThreadSafeExtensions.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ using System.Collections.Concurrent; namespace MES.Service.util; public static class LinqThreadSafeExtensions { // 线ç¨å®å ¨çæ¬ï¼åºäºConcurrentDictionaryï¼ public static Func<T, bool> DistinctByKey<T, TKey>( Func<T, TKey> keySelector) { var seen = new ConcurrentDictionary<TKey, bool>(); return item => seen.TryAdd(keySelector(item), true); } // æ©å±æ¹æ³çæ¬ï¼æ¨èï¼ public static IEnumerable<T> DistinctByConcurrent<T, TKey>( this IEnumerable<T> source, Func<T, TKey> keySelector) { var seen = new ConcurrentDictionary<TKey, bool>(); return source.Where(item => seen.TryAdd(keySelector(item), true)); } }