草庐IT

ienumerator

全部标签

C# Linq - 无法将 IEnumerable<string> 隐式转换为 List<string>

我有一个这样定义的列表:publicListAttachmentURLS;我正在像这样向列表中添加项目:instruction.AttachmentURLS=curItem.Attributes["ows_Attachments"].Value.Split(';').ToList().Where(Attachment=>!String.IsNullOrEmpty(Attachment));但我收到此错误:无法将IEnumerable隐式转换为列表我做错了什么? 最佳答案 Where方法返回IEnumerable.尝试添加.ToLis

C# - IEnumerable 到定界字符串

转换IEnumerable的函数式编程方法是什么?到分隔字符串?我知道我可以使用循环,但我正在尝试围绕函数式编程。这是我的例子:varselectedValues=fromListItemitemincheckboxList.Itemswhereitem.Selectedselectitem.Value;vardelimitedString=??..或者我可以只在第一个var赋值中这样做(将每个结果附加到前一个结果)? 最佳答案 string.Join(",",string[]enumerable)

c# - 带有 yield 返回的异步任务<IEnumerable>?

以下方法无法编译。替代方案?publicstaticasyncTask>GetRecordsAsync(thisTransactiontransaction,stringcommandText,paramsSqlParameter[]parameters){//GetaSqlDataReadervarreader=awaittransaction.GetReaderAsync(commandText,parameters);varfieldCount=-1;//Beginiteratingthroughrecordsasynchronouslywhile(awaitreader.Rea

c# - 为什么 C# 编译器对 double IEnumerable<T> 和 foreach T 很满意?

我知道这段代码行不通(以行之有效的方式编写代码也没有问题)。我想知道编译器如何在没有任何错误的情况下构建。如果你在哪里运行它,你会得到运行时错误?(假设数据不为空)usingSystem;usingSystem.Collections.Generic;publicclassClass1{publicvoidMain(){IEnumerable>data=null;foreach(Foofooindata){foo.Bar();}}}publicclassFoo{publicvoidBar(){}} 最佳答案 这是因为foreach不

c# - 类型 'IEnumerable<>' 在未引用的程序集中定义

我已将以下nuget包添加到我的MVC5应用程序X.PagedList.Mvc我在我的Controller/View中返回结果如下://RepopublicIPagedListGetPagedPosts(intpageNumber,intpageSize){varposts=_context.Post.Include(x=>x.Category).Include(x=>x.Type);//Returnapagedlistreturnposts.ToPagedList(pageNumber,pageSize);}//ViewmodelpublicclassPostViewModel{pu

c# - 从 IEnumerable 中过滤重复项

我有这个代码:classMyObj{intId;stringName;stringLocation;}IEnumerablelist;我想像这样将列表转换成字典:list.ToDictionary(x=>x.Name);但它告诉我我有重复的key。如何只保留每个键的第一项? 最佳答案 我想最简单的方法是按键分组并取每组的第一个元素:list.GroupBy(x=>x.name).Select(g=>g.First()).ToDictionary(x=>x.name);或者,如果您的对象实现了IEquatable,您可以使用Disti

c# - Java 迭代器与 C# IEnumerable

我注意到Java的Iterator(接口(interface))类似于C#的IEnumerable,但是有没有办法像这样使用它:privateIEnumerableit;it=labels.iterator();在Java中我可以这样做:privateIteratorit;it=labels.iterator();Java的Iterator接口(interface)在C#中的等效项是什么? 最佳答案 它不经常使用,但类比是IEnumerator界面:varenumerator=labels.GetEnumerator();.NET的

重叠的IEnumerable系列打印

我正在将XML文件的内容读取到IEnumerable集合(数组)中,我需要在单独的页面上打印每个迭代(喜欢XML数据的块)。我正在使用print()函数和e.hasmorepages。我的问题是,通过每次打印的iEnumerable系列的所有迭代循环循环,因此我要打印正确的页面,但是每个页面都包含彼此之上的所有迭代,而不是每页一个。谁能给我一个解决方案或更好地管理此过程的方法的想法?这是代码的相关部分...//PrintEmployeeGeneralinfoforeach(EmployeeInfoitminGEmployeeXGD.GetEmployeeGeneralData()){try{e

c# - Java 中 C# IEnumerable 的等价物是什么?具有协变能力的,而不是可迭代的

这种协变在C#中是可能的:IEnumerablea=newList();IEnumerableb=newList();a=b;...classA{}classB:A{}这在Java中是不可能的:(可迭代:在这个问题中看到JavaArrays&Generics:JavaEquivalenttoC#IEnumerable)。Iterablea=newArrayList();Iterableb=newArrayList();a=b;...classA{}classBextendsA{}使用Iterable,Java看不到这两个集合是协变的Java中哪个可迭代/可枚举接口(interface)

c# - Microsoft Hadoop Avro Serializer 不支持 IEnumerable<string>

我有一个属性类型为IEnumerable的simlpe类在尝试使用反射创建序列化程序时(请参阅Microsoft.NETSDKForHadoop)它失败并出现以下异常。Couldnotfindanymatchingknowntypefor'System.Collections.Generic.IEnumerable`1[System.String]'.但是当使用string[]而不是IEnumerable时它有效使用的类[DataContract]publicclassMyClass{[DataMember]publicstringField1;[DataMember]//public