草庐IT

IEnumerable

全部标签

c# - default(IEnumerable<T>) 的值是多少?

什么值default(IEnumerable)在.NET4.0中,C#?(非常简单) 最佳答案 nulldefaultKeyword:willbenullforreferencetypesandzeroforvaluetypes.IEnumerable不是值类型,因此结果将为null 关于c#-default(IEnumerable)的值是多少?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - 没有具有关键国家/地区的 'IEnumerable<SelectListItem>' 类型的 ViewData 项目

在MVC中绑定(bind)下拉菜单时,我总是收到此错误:ThereisnoViewDataitemoftype'IEnumerable'thathasthekeycountry.查看@Html.DropDownList("country",(IEnumerable)ViewBag.countrydrop,"Selectcountry")ControllerListcoun=newList();coun=ds.getcountry();Listitem8=newList();foreach(varcincoun){item8.Add(newSelectListItem{Text=c.co

c# - 复制 IEnumerable<T> 的最便宜的方法?

我有一个IEnumerable,我需要它的副本。任何实现IEnumerable的东西会做的很好。什么是最便宜的复制方法?.ToArray()也许吧? 最佳答案 ToArray不一定比ToList快.只需使用ToList.重点是只要在枚举之前不知道原始序列的元素数量,您最终会调整数组的大小并向其中添加元素,如List。确实如此ToArray将不得不做同样的事情List无论如何。此外,ToList给你一个List这比原始数组更好。当然,如果你知道IEnumerable的具体类型例如,可以有更快的方法,但这与重点无关。旁注:使用数组(除非

c# - 在单元测试中循环

我们可以在单元测试中有一个循环吗?我的方法返回一个IEnumerable,我想对IEnumerable所在的逻辑进行单元测试被build。基本上我想测试IEnumerable中元素的数量符合预期。我想不出另一种方法来测试内部IEnumerable没有循环语句。如果这是一个好的做法,请告诉我。 最佳答案 没有技术原因您不能这样做。一个单元测试中可以有多个Assert语句。在循环中使用Assert语句只是在测试中使用多个Assert语句的简写方式。但是,有些人认为单元测试中应该只有一个Assert语句。我个人不同意-我认为测试应该测试一

c# - IEnumerable 中的项目不等于 List 中的项目

我只是想不通为什么找不到我筛选列表中的项目。我已经简化了这个例子来展示它。我有一个类项目...publicclassItem{publicItem(stringname){Name=name;}publicstringName{get;set;}publicoverridestringToString(){returnName;}}...和一个“项目”类,它应该过滤项目并检查第一个项目是否仍在列表中...publicclassItems{privateIEnumerable_items;publicItems(IEnumerableitems){_items=items;}public

c# - 对 IEnumerable 中的先前值求和

我有一个数字序列:varseq=newList{1,3,12,19,33};我想将其转换为一个新序列,其中将数字添加到前面的数字以创建一个新序列:{1,3,12,19,33}-->{1,4,16,35,68}我想到了以下内容,但我不喜欢状态变量“count”。我也不喜欢这样的事实,即我使用Enumerable值而不对其进行操作。intcount=1;varsummed=values.Select(_=>values.Take(count++).Sum());还能怎么办? 最佳答案 这是函数式编程中的常见模式,在F#中称为scan.这

c# - Linq 从两个列表中返回所有元素对?

给定列表l1={1,2}和l2={4,5,6}我想得到一个包含元素的新列表:rez={{1,4},{1,5},{1,6},{2,4},{2,5},{2,6}}建议? 最佳答案 是的,这是可能的。EricLippert就此主题写了一篇非常好的文章:ComputingaCartesianProductwithLINQ如果你只有2个列表,那么你可以像这样直接使用多个from:fromains1frombins2selectnew[]{a,b};甚至:s1.SelectMany(a=>s2.Select(b=>new[]{a,b}));但E

c# - 在 Lambda/LINQ 中组合列表

如果我有IEnumerable>类型的变量是否有LINQ语句或lambda表达式我可以应用于它,它将组合返回IEnumerable的列表? 最佳答案 SelectMany-即IEnumerable>someList=...;IEnumerableall=someList.SelectMany(x=>x);对于someList中的每个项目,这然后使用lambda“x=>x”为内部项目获取IEnumerable。在这种情况下,每个“x”都是一个List,它已经是IEnumerable。然后将这些作为连续block返回。本质上,Selec

C# List<T> 与 IEnumerable<T> 性能问题

你好,假设这两种方法:privateListGetProviderForType(Typetype){ListreturnValue=newList();foreach(KeyValuePairproviderin_objectProviders){if((provider.Key.IsAssignableFrom(type)||type.IsAssignableFrom(provider.Key))&&provider.Value.SupportsType(type)){returnValue.Add(provider.Value);}}returnreturnValue;}priv

c# - LINQ:从字典中获取给定值列表的键,反之亦然

我的代码中有以下结构Dictionarydata;.我对这两种数据类型都运行了一些LINQ查询,并且经常需要在Keys之间切换和Values.获取给定值的键列表的最佳方法是什么,反之亦然?请注意,由于我以前的LINQ查询,我通常有'IEnumerable'和'IEnumerable'并且想要像IEnumerableDictionary.GetAllKeys(IEnumerablevals)这样的东西和IEnumerableDictionary.GetAllValues(IEnumerablekeys).也许我需要其他数据容器来完成这项任务?问候,亚历山大。