草庐IT

int_list

全部标签

c# - 多部分 int 字典键的最佳方法?

假设我的字典需要由ItemId和RegionId的组合作为键,都是int。并说值(value)方的类型是“数据”。我可以通过几种方式做到这一点:方式一:多级字典,像这样:Dictionary>myData;所以查找可以这样编码:Datadata1=myData[itemId][regionId];不错,但缺点是我需要在第一级检查key是否存在,因此更安全的代码是Datadata1=null;if(myData.ContainsKey(itemId))data1=myData[itemId][regionId];方式2:使用多部分key。在这种方法中,我将创建一个结构来表示部件,并使用一

c# - list.count 是在物理上遍历列表来计算它,还是保留一个指针

我正在遍历一个大的对象列表来对列表中的所述对象做一些事情。在我的迭代过程中,我会根据特定条件从列表中删除一些对象。完成所有操作后,我需要根据列表中的对象数量更新UI。(T列表)。问题:WhenIcalllist.count,does.netactuallyiteratethroughthelisttocountit,ordoesitstorethecountasaproperty/variable?如果.net在物理上重复遍历列表,我也可以在自己遍历列表时保留一个计数器,从而节省开销?谢谢 最佳答案 它只是保留一个内部整数来跟踪项目

c# - 将 Json.Net JValue 转换为 int

我试过:JValuemyJValue=getJValue(someVar);intstoredValue=JsonConvert.DeserializeObject(myJValue);但这似乎只对JObjects有效。有没有办法从JValue中获取整数? 最佳答案 也许这对你有帮助:intstoredValue=myJValue.ToObject(); 关于c#-将Json.NetJValue转换为int,我们在StackOverflow上找到一个类似的问题:

c# - 可以锁定 System.Collections.Generic.List<t> 吗?

我一直在阅读有关syncroot元素的信息,但我在List类型中找不到它。那么System.Collections.Generic.List类型应该如何进行多线程同步呢? 最佳答案 你找不到它的原因是因为它是explicitlyremoved.如果它真的是你想做的,使用SynchronizedCollection或者创建一个专用的同步对象。最好的方法(通常)是创建一个专用的同步对象,正如Winston所说明的那样。SyncRoot的本质问题特性是它提供了一种错误的安全感——它只能处理非常有限的情况。开发人员经常忽略整个逻辑操作的同步

c# - 将由返回字符分隔的字符串转换为 List<string> 的最佳方法是什么?

我需要经常将“字符串block”(包含返回字符的字符串,例如来自文件或文本框)转换为List.有什么方法比下面的ConvertBlockToLines方法更优雅?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceTestConvert9922{classProgram{staticvoidMain(string[]args){stringtestBlock="lineone"+Environment.NewLine+"linetwo"+Environment.NewLine+"linethree"

c# - List<T> 在更改时触发事件

我创建了一个继承List的类EventList,它会在每次添加、插入或删除某些内容时触发一个事件:publicclassEventList:List{publiceventListChangedEventDelegateListChanged;publicdelegatevoidListChangedEventDelegate();publicnewvoidAdd(Titem){base.Add(item);if(ListChanged!=null&&ListChanged.GetInvocationList().Any()){ListChanged();}}...}目前我将它用作这样

c# - list.Take(100).ToList() 与 list.GetRange(0,100)

Listattendees=newList();foreach...//Error:"Therearetoomanytargetusersintheemailaddressarray"//formorethan100attendees.Sotakethefirst100attendeesonly.if(attendees.Count>100)attendees=attendees.GetRange(0,100);//orif(attendees.Count>100)attendees=attendees.Take(100).ToList();由于我处理的列表总是长于100,并且总是取前

c# - 处理只读 List<T> 成员时应该如何使用属性

当我想在我的类之外将值类型设置为只读时,我会这样做:publicclassmyClassInt{privateintm_i;publicinti{get{returnm_i;}}publicmyClassInt(inti){m_i=i;}}我该怎么做才能制作List在我的类(class)之外输入只读(这样他们就不能在其中添加/删除元素)?现在我只是宣布它公开:publicclassmyClassList{publicListli;publicmyClassList(){li=newList();li.Add(1);li.Add(2);li.Add(3);}}

c# - 数据绑定(bind) Int 属性到 WPF 中的枚举

下面是我拥有的一个类的简化示例:publicclassExampleClassDto{publicintDriverTypeId}我还有一个枚举,将DriverType的ID映射到有意义的名称:publicenumDriverType{None,Driver1,Driver2,Driver3}但我想在XAML中将其绑定(bind)到组合框。不幸的是,由于类型不匹配,它不喜欢这样。所以在我的ViewModel中,我必须创建第二个属性来映射这两个publicclassExampleViewModel{privateExampleClassDto_selectedExampleClass;p

c# - List<T> 和 List<object> 的区别?

既然一切都继承自object,那么List之间有什么区别呢?和List?优点?缺点? 最佳答案 如果您插入int进入List,它将被装箱。如果将其插入List,它不会被装箱(对于任何值类型都是如此,将int替换为类型的名称)。同样,从List中检索值,拆箱会发生,但不会发生List.List是强类型的,List不是(所以你失去了编译时的安全性,并且可能会遇到运行时爆炸)。 关于c#-List和List的区别?,我们在StackOverflow上找到一个类似的问题: