草庐IT

last_list

全部标签

c# - 反向多对多 Dictionary<key, List<value>>

实际上mypreviousquestion让我思考我意识到反转Dictionary不是微不足道的。最优雅、最易读的方法是什么?同场景学生多对多同类原创Dicitonary>其中键是studentId,值是List包含classId并希望恢复为Dictionary>谢谢更新:实际上,我刚刚测试了Luke和Bruno的解决方案,他们会返回正确数量的类(class),无论他们都有相同的学生,都会随着我的进行而更新。 最佳答案 反转字典非常简单:varnewDic=oldDic.ToDictionary(x=>x.Value,x=>x.Ke

c# - list.First()、list.ElementAt(0) 和 list[0] 的区别?

根据标题...list.First()、list.ElementAt(0)和list[0]之间有什么真正的区别吗? 最佳答案 如果源列表不包含任何元素,.First()将抛出异常。SeetheRemarkssection.为避免这种情况,请使用FirstOrDefault()。.ElementAt(0)如果索引大于或等于列表中的元素数,将抛出异常。为避免这种情况,请使用ElementAtOrDefault(0)。如果您使用的是LINQToSQL,则无法将其转换为sql,而.First()可以转换为TOP1。如果索引大于或等于列表中的

c# - 实体类型 List`1 不是当前上下文模型的一部分

我一直在使用数据库优先,EF4.1我收到“实体类型List`1不是当前上下文模型的一部分。”尝试从我的编辑View更新记录时出错。错误发生在db.Entry(properties).State=EntityState.Modified;这是我的模型:publicclassUsers{[Key]publicintUser_ID{get;set;}publicstringUserName{get;set;}[NotMapped]publicIEnumerableUser_Properties{get{returnProperties.Where(u=>u.User_ID==User_ID)

c# - 如何有效地转换 List<T>?

我有一个List但是我需要一个List有没有办法在C#中转换它?或者使用Linq获得相同的结果?我有两个实现相同接口(interface)的类:interfaceIDataField{}classInputField:IDataField{}classPurchaseField:IDataField{}此列表来自Linq-to-Sql查询:Listlist=(fromi....selecti).ToList(); 最佳答案 .OfType和.Cast都会返回一个T的列表,但是这两个方法的含义不同。list.OfType()过滤原始列

c# - 使用 LINQ 使用相同的值填充 List<string>

我想填充List在指定的次数内使用相同的字符串值。在C#中它是:ListmyList=newList();for(inti=0;i是否可以使用LINQ执行此操作? 最佳答案 是的,使用Enumerable.Repeat:varmyList=Enumerable.Repeat("myString",50).ToList();或者这个:varmyList=newList(Enumerable.Repeat("myString",50));如果你有一个现有的列表,你想添加这些元素,使用这个:myList.AddRange(Enumerab

c# - List<T>.RemoveAll() 效率/编译器优化

关于效率,有谁知道编译器是否足够聪明以不为每次迭代创建包含1,3,5的数组以下代码中的循环?varfoo=newList{1,2,3,4,5};foo.RemoveAll(i=>new[]{1,3,5}.Contains(i));我更喜欢它是为了可读性,而不是为了性能。 最佳答案 答案是否定的,它没有优化数组的分配基本上,每次调用谓词时,它都会检查编译器生成的类并初始化一个新数组以调用Contains(如您所见here)privatesealedclassc{publicstaticreadonlyc9=newc();publics

c# - Array.Count() 比 List.Count() 慢得多

使用IEnumerable的扩展方法时Count(),数组至少比列表慢两倍。FunctionCount()List2,299int[]6,903差异从何而来?我知道两者都在调用CountICollection的属性(property):IfthetypeofsourceimplementsICollection,thatimplementationisusedtoobtainthecountofelements.Otherwise,thismethoddeterminesthecount.对于列表,它返回List.Count,对于数组,Array.Length.此外,Array.Len

c# - 为什么 List<T> 实现 IList<T>、ICollection<T> 和 IEnumerable<T>?

如果你去定义List你会看到以下内容:publicclassList:IList,ICollection,IEnumerableIList已经继承自ICollection和IEnumerable.如果List还不够吗?仅实现IList? 最佳答案 是的,在这种情况下没有区别。在某些情况下,它可以有所作为,如果您使用的基类已经实现了一个接口(interface),但您希望自己显式地重新实现它——但在这种情况下,没有基类(除了隐式object),它的行为方式完全相同。与我的记忆相反,我认为无论代码是否显式声明所有接口(interface

c# - 将 CollectionBase 转换为 List 或可与 Linq 一起使用的数据类型

我正在使用Aspose单元格来操作Excel电子表格。API中的一种类型是电子表格中的图片集合,它派生自CollectionBase:查看此链接:http://www.aspose.com/documentation/.net-components/aspose.cells-for-.net/aspose.cells.pictures.html我想将此类型转换为允许我使用Linq表达式的类型有哪些选择?我想我可以遍历它并手动将它添加到newList但是有没有更好的方法来做到这一点?我看过这个问题AddingIEnumerabletoclassderivedfromCollectionB

c# - 在多线程场景中正确锁定 List<T>?

好吧,我只是无法正确理解多线程场景。很抱歉再次提出类似的问题,我只是在互联网上看到许多不同的“事实”。publicstaticclassMyClass{privatestaticList_myList=newList;privatestaticbool_record;publicstaticvoidStartRecording(){_myList.Clear();_record=true;}publicstaticIEnumerableStopRecording(){_record=false;//ReturnaRead-Onlycopyofthelistdatavarresult=n