关于List TO Dictionary

shellhy_cn 2014-05-24 01:07:56
我想把一个List<string>(里面是这样的格式:218.173.0.0:218.213.255.255这样的IP段格式)中的数据转为Dictionary<int, int>
static Dictionary<int, int> ips = new int[][]
{
//就是把List中的数据放这里初始化
Enumerable.Range(607649792, 608174079 - 607649792 + 1).ToArray(),
Enumerable.Range(1038614528, 1039007743 - 1038614528 + 1).ToArray(),
Enumerable.Range(1783627776, 1784676351 - 1783627776 + 1).ToArray(),
}

请问怎么弄
...全文
428 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shellhy_cn 2014-05-29
  • 打赏
  • 举报
回复
已经搞定了,用的LIST,然后随机,字典太大
  • 打赏
  • 举报
回复
引用 8 楼 shellhy_cn 的回复:
比如这样: "深圳"=>"222.14.0.0:222.17.255.255", "19.147.0.0:19.187.255.255", "107.19.0.0:107.20.255.255" "北京"=>"212.18.0.0:212.19.255.255", "20.147.0.0:20.187.255.255", "117.19.0.0:117.20.255.255"
如果你没有自己定义Type的概念,那就没有办法了。 如果有,那么你可以写(例如):
public static List<MyLib> lib1;
public static SortedSet<MyLib> Lib2;

public class MyLib
{
    public long From;
    public long To;
    public Area;
}
而不要只会抱着基本的数据。 但愿这对你来说不是对牛弹琴。
zhouxiulu 2014-05-24
  • 打赏
  • 举报
回复
你这样完全可以写到数据库中,这样的话就很方便了
sunny906 2014-05-24
  • 打赏
  • 举报
回复
引用 7 楼 shellhy_cn 的回复:
就是想根据地区的IP段来随机生成地区的IP地区
不太明白
sunny906 2014-05-24
  • 打赏
  • 举报
回复
引用 6 楼 shellhy_cn 的回复:
字典方法不行,IP段太大,程序就死掉了 请问这样的存储怎么表达: [1]=>{"2323", "23432", "344334", "435445"} [2]->{"1111", "2222", "3333"} ..... 这样就可以先随机取到[1],然后再随机取[1]里面的字符串
这样表达

        Dictionary<int,List<string>> list=new Dictionary<int,List<string>>();
        list.Add(1,new List<string>(){ "2323","23432","344334","435445" });
        list.Add(2,new List<string>(){ "1111","2222","3333" });
shellhy_cn 2014-05-24
  • 打赏
  • 举报
回复
比如这样: "深圳"=>"222.14.0.0:222.17.255.255", "19.147.0.0:19.187.255.255", "107.19.0.0:107.20.255.255" "北京"=>"212.18.0.0:212.19.255.255", "20.147.0.0:20.187.255.255", "117.19.0.0:117.20.255.255"
shellhy_cn 2014-05-24
  • 打赏
  • 举报
回复
就是想根据地区的IP段来随机生成地区的IP地区
shellhy_cn 2014-05-24
  • 打赏
  • 举报
回复
字典方法不行,IP段太大,程序就死掉了 请问这样的存储怎么表达: [1]=>{"2323", "23432", "344334", "435445"} [2]->{"1111", "2222", "3333"} ..... 这样就可以先随机取到[1],然后再随机取[1]里面的字符串
  • 打赏
  • 举报
回复
以 “:” 分割成string[],在以“.”号分割成sting[] ,循环添加到字典中。
sunny906 2014-05-24
  • 打赏
  • 举报
回复

List<string> list = new List<string>() { "218.173.0.0:218.213.255.255" };
            Dictionary<string, List<string>> ipSet = new Dictionary<string, List<string>>();
            List<string> temp = new List<string>();
            foreach (string ipArea in list)
            {
                temp.Clear();
                string[] ips = ipArea.Split(':')[0].Split('.');
                string[] ipe = ipArea.Split(':')[1].Split('.');
                for (int m = int.Parse(ips[0]); m <= int.Parse(ipe[0]); m++)
                {
                    for (int n = int.Parse(ips[1]); n <= int.Parse(ipe[1]); n++)
                    {
                        for (int i = int.Parse(ips[2]); i <= int.Parse(ipe[2]); i++)
                        {
                            for (int j = int.Parse(ips[3]); j <= int.Parse(ipe[3]); j++)
                            {
                                temp.Add(string.Format("{0}:{1}:{2}:{3}", m, n, i, j));
                            }
                        }
                    }
                }
                ipSet.Add(ipArea, temp);
            }
shellhy_cn 2014-05-24
  • 打赏
  • 举报
回复
就放几个IP段在字典中
bwangel 2014-05-24
  • 打赏
  • 举报
回复
如果你想根据IP来区分地域的话,只需要记住一系列起始IP和结束IP两个关键值就行了。 ipv4虽然只有32位,但理论上也有40多亿个,你全放在字典里显然是不太现实。
shellhy_cn 2014-05-24
  • 打赏
  • 举报
回复
我是先从嵌入资源中读文本,文本中存放有IP段,然后读到List,后面生成字典
内容概要:本文介绍了一个基于Java+Vue的制造工艺卡片电子化与防错提示系统的设计与实现,旨在解决传统纸质工艺卡片在版本管理、操作一致性、质量追溯等方面的不足。系统通过构建电子工艺卡为核心载体,整合产品、工艺、设备、物料、人员、检验等多维数据,实现工艺文件的在线编制、审批与发布,并利用规则引擎对开工、参数录入、报工等关键环节进行实时校验与分级防错提示。系统采用分层架构设计,前端使用Vue实现交互界面,后端基于Spring Boot提供服务支持,数据库采用关系型结构保障数据一致性。核心功能包括参数范围校验、前序工序完成判断、人员资质有效性检查、风险评分模型与提示等级聚合机制,并通过事件驱动的追溯模型实现全过程制造履历记录与分析。项目还提供了完整的领域模型、防错规则引擎、数据生成代码示例,支持与MES、条码系统等集成,助力企业实现制造过程数字化、标准化与智能化。; 适合人群:具备一定Java和Vue开发基础,从事制造业信息化、MES系统开发、工业软件研发的相关技术人员,以及关注智能制造、工艺管理数字化转型的工程师与管理者。; 使用场景及目标:①替代传统纸质工艺卡,实现工艺文件的集中管控与版本一致性;②在生产过程中自动校验人员、设备、物料、参数等是否符合工艺要求,预防人为错误;③建立全流程制造数据追溯体系,支持质量问题快速定位与根因分析;④通过风险评分与数据分析优化工艺稳定性与生产效率。; 阅读建议:此资源包含完整的系统架构设计、核心模型说明及可运行的代码片段,建议开发者结合实际制造场景理解各模块设计逻辑,重点掌握规则引擎的实现方式与数据流转机制,并可通过提供的数据生成工具模拟测试系统行为,进一步拓展至真实产线应用。
在当今全球气候变化的大背景下,对气候数据的分析和研究显得尤为重要。"ClimateDataToolbox"(CDT)作为一个专业的工具箱,为科研人员、环境学者以及政策制定者提供了强大的数据处理和分析能力。这款工具箱旨在简化气候数据的获取、管理和应用过程,从而帮助用户更好地理解地球气候系统的变化。 CDT的核心功能主要包括以下几个方面: 1. 数据获取:CDT能够便捷地连接到多个气候数据源,包括但不限于NASA、NOAA等权威机构,用户可以直接在工具箱中下载并导入各种气候模型输出数据、观测数据以及历史气候数据。 2. 数据预处理:工具箱内置了多种数据清洗和格式转换功能,可以处理缺失值、异常值,并将不同格式的数据统一,为后续分析做好准备。 3. 数据可视化:CDT提供了丰富的图形绘制选项,用户可以创建气候图、时间序列图、空间分布图等多种图表,直观展示气候变量的变化趋势和空间格局。 4. 数据分析:CDT支持对气候数据进行统计分析,如趋势分析、相关性分析、空间统计等,帮助用户深入探究气候现象背后的规律。 5. 模型应用:对于气候模型的使用者,CDT可以协助进行模型结果的比较和评估,比如通过对比不同气候模型的预测结果,分析其差异和一致性。 6. 地图制作与地理信息系统集成:CDT可以与GIS软件无缝对接,用户可以利用其制作高精度的地图,用于展示气候变量的地理分布,同时进行空间分析。 7. 教学与科普:CDT不仅适用于专业研究,也适合教学和科普活动,通过直观的界面和操作,让气候变化的理解更加直观易懂。 通过使用ClimateDataToolbox,用户能够高效地进行气候数据分析,提升研究效率,为应对气候变化提供科学依据。无论你是从事气候研究的学者,还是关注环保的公众,CDT都能成为你探索气候世界的得力助手。 在实际使用中,"ClimateDataToolbox.m

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧