草庐IT

字典顺序

全部标签

c# - C# List<T> 中元素的顺序是否确定?

我一直不这么认为,但最近我需要知道:如果我按特定顺序将元素添加到列表中,我是否保证总是按相同的顺序找到它们?谢谢! 最佳答案 是的;您可以控制List的顺序.您可以假设任何带有list[int]的.NET集合索引器具有可预测的顺序;否则,数字索引将没有任何意义。相比之下,不可能使用Dictionary的数字索引。,并且当您枚举字典时,无法保证顺序。 关于c#-C#List中元素的顺序是否确定?,我们在StackOverflow上找到一个类似的问题: https

C# 字典初始化程序编译不一致

以下代码可以编译,但会因NullReferenceException而失败:classTest{publicDictionaryDictionary{get;set;}}staticvoidMain(string[]args){varx=newTest{Dictionary=//fails{{"key","value"},{"key2","value2"}}};}如果您将标记为“失败”的行替换为以下内容,它将正常工作(如预期):Dictionary=newDictionary失败的语法是否有任何用途——它能否在其他情况下成功使用?或者这是编译器的疏忽? 最佳

C# 使用 linq 对字典进行排序

我有一个C#字典:publicDictionary我想把我的结果放到一个通用列表中:ListproductList=newList();产品订购者按字典中的int值降序排列。我试过使用orderby方法,但没有成功。 最佳答案 您可以使用:ListproductList=dictionary.OrderByDescending(kp=>kp.Value).Select(kp=>kp.Key).ToList(); 关于C#使用linq对字典进行排序,我们在StackOverflow上找到一

检查字典中的某些内容是否与该词典中的最大值相同?

我如何检查字典中的某些内容与该词典中的最大值相同。换句话说,获取所有最大值,而不是最低位置的最大值。我有此代码返回最大变量名称和值:d={'g_dirt4':g_dirt4,'g_destiny2':g_destiny2,'g_southpark':g_southpark,'g_codww2':g_codww2,'g_bfront2':g_bfront2,'g_reddead2':g_reddead2,'g_fifa18':g_fifa18,'g_motogp17':g_motogp17,'g_elderscrolls':g_elderscrolls,'g_crashbandicoot':g_

c# - 如何在 C# 中将字典初始化为 (key, value, value) 对

我想将值存储为键、值、值对。我的数据类型Key->int&bothvalues->ulong,如何初始化和获取此类字典的值。我正在使用VS-2005。如果我使用类或结构,那么我该如何获取值。 最佳答案 创建一个结构来存储你的值:structValuePair{publiculongValue1;publiculongValue2;}字典初始化:Dictionarydictionary=newDictionary();如果您使用int作为键,也许List就足够了?列表:Listlist=newList();ValuePair可以添加到

c# - Dock->Top 控件的顺序有问题

C#WinForms:我正在设计我的表格,我有几个TableLauots。所以我设计了我的第一个表格布局,将它放在面板上并设置Dock->Top...然后我设计了我的第二个表格并做同样的事情并设置了Dock->Top,它又回到了Top并且很好,它放在了前一个在上面...我设计了第三个并设置了它的dock.top很好,它在第二个下面,在第一个下面...但我不知道当我设置时第四个有什么区别它的dock.top,它改变了其他三个的顺序并在它们之间的某个位置放置,它没有被放置在第三个下面......知道我应该看什么吗? 最佳答案 这取决于您

c# - 为什么 LET 语句的顺序在此 Entity Framework 查询中很重要?

我正在处理的EntityFramework支持的.NETWeb应用程序中的网格查询给出了500错误(转换为值类型“System.Int32”失败,因为物化值为null。结果类型的通用参数或查询必须使用可空类型。)当网格行对象恰好在特定的一对多关系中具有零个子项时。null返回到一个不相关的整数属性。令人费解的是,颠倒Linq表达式中两个独立的Let语句的顺序使错误消失了。也就是说,如果只有一个Widget(ID:1,CreatedOn:somedatetime),没有Bars和一个Foo(fValue:96)fromwinWidgets.OrderBy(w=>w.CreatedOn)l

c# - WPF 绑定(bind)顺序如何确保一个属性在另一个属性之前绑定(bind)

我遇到的问题是,当我在ListView的数据模板中使用此控件时,绑定(bind)发生在设置Mode属性之前。如何确保模式始终在值绑定(bind)之前设置? 最佳答案 你可以做的是延迟绑定(bind),所以你可以(几乎)确定模式值设置到那时。.net4.5中有延迟绑定(bind)属性。这是一篇关于如何在.net4.0中模拟它的文章DelaypropertyonBindingfrom.Net4.5in.Net4.0我个人会在viewModel(MVVM)中实现它,在这种情况下这类问题很容易解决。创建两个属性Mode和Something。

c# - Postsharp Aspects 执行顺序

好的,这可能会很长。我正在尝试做两件事:我想要一个类,该类通过保存每个调用都路由到的另一个类的实例来实现接口(interface)。我也想拦截所有的方法调用,做点什么。单独完成这两件事效果很好。将它们组合起来似乎只在一个执行顺序中有效,正如Murphy所说,这是错误的顺序(至少对我而言)。我想先注入(inject)组合,这样所有调用的拦截也将拦截之前注入(inject)的那些。namespaceConsoleApplication13{usingSystem;usingSystem.Reflection;usingPostSharp;usingPostSharp.Aspects;usi

c# - 如何实现不按字母顺序排列的接口(interface)属性

我使用VS2015。当我创建一个新类并尝试使用快捷键Ctrl+.实现一个接口(interface)时——例如,classStarShip:IStarShip然后我使用Ctrl+.并选择implementinterface-它按字母顺序实现属性和方法!有没有一种简单的方法让它按照它们在界面中的顺序实现它们,还是我必须手动实现?我没有Resharper,所以这不是一个选项。 最佳答案 在VS2019中,您可以在选项中更改它。Tools->Options->TextEditor->C#->Advanced->Implementinterf