C#中多集合组合使用方法,主要用到 Enumerable.Join方法

var skuInfoList = new Dictionary<int, List<long>>();
var ctParamList = new List<long>();
foreach (var sku in skuList)
{
var singleSku = sku.Split('|');
ctParamList = new List<long>();
foreach (var skuParam in skuParamList)
{
var singleSkuParam = skuParam.Split(':');
if (singleSku[] == singleSkuParam[])
{
var singleParam = singleSkuParam[].Split('|');
ctParamList.Add(Convert.ToInt64(singleParam[]));
}
}
skuInfoList.Add(Convert.ToInt32(singleSku[]), ctParamList);
}
var res = new List<List<long>>() { new List<long>() };
Func<List<long>, List<List<long>>> func = lst =>
{
return res.Join(lst, x => , x => , (x, y) =>
{
var tem = x.ToList();
tem.Add(y);
return tem;
}).ToList();
};
foreach (var skuInfo in skuInfoList)
res.AddRange(func(skuInfo.Value));

关键代码:

var res = new List<List<long>>() { new List<long>() };
Func<List<long>, List<List<long>>> func = lst =>
{
return res.Join(lst, x => , x => , (x, y) =>
{
var tem = x.ToList();
tem.Add(y);
return tem;
}).ToList();
};

C#中多集合组合实现的更多相关文章

  1. 14.python中的集合

    什么是集合?正如其字面的意思,一堆东西集中合并到一起.乍一听貌似和容器没什么差别,嗯,好吧,集合也算是一种容器. 在学习这个容器有什么不同之前,先看看集合是如何创建的: a = set() #可变集合 ...

  2. C#中的集合

    [集合不同于数组,是一组可变类型的.可变数量的元素的组合,这些元素可能共享某些特征,需要以某种操作方式一起进行操作.一般来讲,为了便于操作这些元素的类型是相同的] [集合与数组的区别:数组是连续的.同 ...

  3. 6.5.2 C# 中的函数组合

    6.5.2 C# 中的函数组合 C# 中的函数组合是可能的.但使用非常有限,这是部分是由于在 C# 中散应用不能非常easy使用.但更重要的是,由于大多数操作是用成员来写的.而不是函数.但我们至少能够 ...

  4. Java中list集合自定义排序-2022新项目

    一.业务场景 为了加快首页数据查询的效率,因此将首页查询的数据大多数都放在了缓存中,包括各种list集合数据.对这些 从缓存中获取的数据做了一个兜底处理,如果从缓存中没有获取到数据,则直接从数据库中去 ...

  5. Java 中的集合接口——List、Set、Map

    Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...

  6. 学习sql中的排列组合,在园子里搜着看于是。。。

    学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...

  7. C#中的集合有几种?

    C#中的集合有几种? Array ArrayList List<T> Stack<T> Queue<T> Dictionary<K,V> HashTab ...

  8. Java中的集合框架

    概念与作用 集合概念 现实生活中:很多事物凑在一起 数学中的集合:具有共同属性的事物的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象 在编程时,常常需要集中存放多 ...

  9. 实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

随机推荐

  1. Ubuntu 上编译opencv_contrib模块for Android

    https://blog.csdn.net/ipfpm/article/details/81132144 [ubuntu]Ubuntu中Android SDK下载跟配置 android24的版本 (1 ...

  2. [转]casperjs截图出现黑色背景

    原文地址:https://my.oschina.net/tuxpy/blog/879509?utm_medium=referral 如果默认没有指定 body的background-color就会出现 ...

  3. 使用termux在安卓手机上搭建python开发环境

    下载安装termux应用. 应用链接如下:https://download.csdn.net/upload/11342944设置-应用-termux赋予存储权限 cd mkdir .termux vi ...

  4. es内存不够

    8核32G 3台 ELS机器,当时只给es配置了8G内存,es的总体数据量大小将近30G(查看GET /_cat/shards?v)

  5. error adding symbols:DSO missing from command line

    编译时加上-lz,如果是使用eclipse,则在添加库z

  6. STVD使用printf输出数据错误

    使用STM8L052输出调试信息 重定向put char #include "stdio.h" //必不可缺少 char putchar (char c) { /* Write a ...

  7. golang 之 context包

    概述     context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入.它用来简化在多个go routine传递上下文数据.(手动/超时)中止routine树等操作,比如,官方 ...

  8. ubuntu 安装Jenkins

    一.介绍 Jenkins是一款开源自动化服务器,旨在自动化连续集成和交付软件所涉及的重复技术任务. Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通过下载和运行其Web应用程序A ...

  9. vue SPA设计 history hash

    <body> <h3>Histort api</h3> <a class="api a">a,html</a> < ...

  10. golang ---JSON-ITERATOR 使用

    jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器 Jsoniter 是最快的 JSON 解析器.它最多能比普通的解析器快 10 倍之多, 独特的 iterator ...