草庐IT

字典顺序

全部标签

c# - Enum.GetNames() 导致带有负枚举常量的意外顺序

我有以下枚举定义(在C#中):publicenumELogLevel{General=-1,//Shouldonlybeusedindrop-downboxinMerliniaAdministratorlogsettingsAll=0,//Shouldnotbeusedasalevel,onlyasathreshold,effectivelysameasTraceTrace=1,Debug=2,Info=3,Warn=4,Error=5,Fatal=6,Off=7//Shouldnotbeusedasalevel,onlyasathreshold}现在,当我对这种类型执行Enum.Ge

c# - IEnumerable<TSource> Concat<TSource> 是否保留元素的顺序?

假设有两个列表A和B,因此A=(1,2,3)和B=(4,5,6)。A.Concat(B)会保留顺序以便结果为(1,2,3,4,5,6)吗? 最佳答案 是的。IEnumerable.Concat只需将一个列表附加到另一个列表的末尾,即可将两个列表变成一个列表。每个列表中的顺序将被保留。 关于c#-IEnumerableConcat是否保留元素的顺序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

c# - Linq 按字母顺序排序

我有一个产品表,想要按字母顺序对数据进行排序。但是当我写这个查询时,他们仍然通过id来。我在谷歌中查看了很多页面,但找不到任何来源。varproduct=Db.tablename.Where(s=>s.colum==DropDownList2.SelectedValue).OrderBy(s=>s.Name); 最佳答案 这个查询varproduct=Db.tablename.Where(s=>s.colum==DropDownList2.SelectedValue).OrderBy(s=>s.Name);在被要求之前不会被执行。因

c# - 使用 linq 合并 2 个具有重复键的字典

如何合并IDictionary的2个词典其中MyObject是一个类实例?IDictionaryd1=newDictionary();d1.Add(guid1,m1);d1.Add(guid2,m2);d1.Add(guid3,m3);IDictionaryd2=newDictionary();d2.Add(guid2,m2);d2.Add(guid3,m3);d2.Add(guid4,m4);IDictionaryd3=d1.Union(d2)???d3有以下条目:guid1,m1guid2,m2guid3,m3guid4,m4 最佳答案

c# - 使用 json.net 反序列化时是否保留数组顺序?

当我使用json.net库将json对象反序列化为c#对象时,数组属性中元素的顺序是否会保持不变?例如:publicclassMySonsThreeFootRadius{publicBooleanIsMessy{get;set;}publicToy[]ToysThrownOnFloor{get;set;}}publicclassToy{publicStringName{get;set;}}{"IsMessy":true,"ToysThrownOnFloor":[{"Name":"Giraffe"},{"Name":"Ball"},{"Name":"Dad'sphone"}]}ToysT

c# - 根据 XSD 验证 XML 并忽略子元素的顺序

我在C#应用程序中有一个方法可以根据嵌入式XSD验证用户输入的XML文件。它工作得很好,但它要求所有子元素都按照XSD中定义的确切顺序排列。不过对我来说,只要元素存在,顺序并不重要。例如,如果我有以下XSD...还有像这样的XML...someValuesomeValuesomeValue如果我验证它,我会得到一个错误,因为子元素是乱序的。我能否对XSD进行一些更改,以便验证只关心元素是否存在,以及它们是否在正确的父级下,而不关心它们的顺序? 最佳答案 顺序是指,元素必须按照特定的顺序出现。您可能想要xs:all。看看http://

c# - 相当于一个允许重复键的排序字典

我需要一个数据结构,可以按对象关联的浮点键对对象进行排序,最低的在前。问题是键代表成本,所以经常有重复,我不关心这个,因为如果两个成本相同,我会捕获第一个,因为它没有区别,问题是编译器提示。是否有一种数据结构的行为方式相同但允许重复键?编辑-我仍然需要重复项,因为如果一个结果是死胡同,我会捕获下一个(它们是a*搜索中的节点)所以为了清楚起见,它需要允许按顺序排序的重复键。 最佳答案 你写:equivalenttoadictionarythatallowsduplicatekeysIneedadatastructurethatcans

c# - 用 foreach 遍历 Dictionary,这是按什么顺序完成的?

假设我有一个字典,我按特定顺序添加每个键和值条目。现在,如果我希望稍后能够以添加条目的相同顺序迭代此Dictionary,这是我在该字典上使用简单的foreach循环获得的顺序吗?如果没有,我会很高兴听到我该怎么做,我知道这可以用List而不是Dictionary轻松完成,但我不想到。谢谢 最佳答案 普通的Dictionary不保证项目的顺序。你需要OrderedDictionary如果您想维护添加到其中的订单项目。请注意,在.Net框架中没有此类的通用版本,因此要么必须放弃一些类型安全性,要么找到其他实现(即https://www

C# 字典,2 个值

使用一个键并提取两个值的最佳C#数据结构是什么?基本上我需要一个Dictionary.有这样的吗? 最佳答案 如果您使用的是.NET4,则可以使用Dictionary>如果你不是,你可以创建你自己的Tuple类型,它的工作方式相同:)或者,如果您只在一个地方需要它,您可以创建自己的类型,使用适当的名称巧妙地封装两个字符串。例如:publicsealedclassNameAndAddress{privatereadonlystringname;publicstringName{get{returnname;}}privatereado

c# - 这个非锁定的 TryGetValue() 字典访问线程安全吗?

privateobjectlockObj=newobject();privateDictionarydict=newDictionary();publicstringGetOrAddFromDict(intkey){stringvalue;//non-lockedaccess:if(dict.TryGetValue(key,outvalue))returnvalue;lock(this.lockObj){if(dict.TryGetValue(key,outvalue))returnvalue;stringnewValue="valueof"+key;//placelongoperat