11
啊鑫
2025-02-12 af6cc8cb47ea9a5b52a730d7b7a6c54ee1b68c11
11
已添加1个文件
已修改1个文件
26 ■■■■■ 文件已修改
StandardPda/MES.Service/service/BasicData/MesRohInManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/util/LinqThreadSafeExtensions.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | 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));
    }
}