草庐IT

c# - 从列表中删除项目并同时获取项目

在C#中,我试图从随机索引的列表中获取一个项目。检索到它后,我希望将其删除,以便不再选择它。好像我需要很多操作才能做到这一点,难道没有一个功能可以让我简单地从列表中提取一个项目吗?RemoveAt(index)函数无效。我想要一个有返回值的。我在做什么:ListnumLst=newList();numLst.Add(1);numLst.Add(2);do{intindex=rand.Next(numLst.Count);intextracted=numLst[index];//dosomethingwithextractedvalue...numLst.removeAt(index);

c# - 在单个 C# 泛型方法中返回 nullable 和 null?

是否可以在C#泛型方法中返回对象类型或Nullable类型?例如,如果我有一个List的安全索引访问器我想返回一个值,以后可以用==null检查或.HasValue().我目前有以下两种方法:staticT?SafeGet(Listlist,intindex)whereT:struct{if(list==null||index=list.Count){returnnull;}returnlist[index];}staticTSafeGetObj(Listlist,intindex)whereT:class{if(list==null||index=list.Count){return

c# - 将整数列表转换为字节数组

我尝试使用List.ConvertAll方法并失败。我想做的是转换List至byte[]我逃避并走了这条路,但我需要弄清楚ConvertAll方法...Listintegers...internalbyte[]GetBytes(){Listbytes=newList(integers.Count*sizeof(byte));foreach(Int32integerinintegers)bytes.AddRange(BitConverter.GetBytes(integer));returnbytes.ToArray();} 最佳答案

c# - 如何将对象列表存储到 ViewState

我有一个List类型的列表.我想将它存储在ViewState中。如何做到这一点?privateListJobSeekersList{get;set;} 最佳答案 基本上你只需要使用get,然后你要么从View状态获取发布的数据,要么在View状态上第一次设置它。这是更健壮的代码,可以避免对每次调用进行所有检查(是否设置View状态、是否存在等),并直接保存和使用View状态对象。//usingthisconstyouavoidbugsinmispellingthecorrectkey.conststringcJobSeekerNam

C# - 当 Dog 是 Animal 的子类时,如何将 List<Dog> 转换为 List<Animal>?

我有一个类Animal,及其子类Dog.我有一个List我想添加一些List的内容到List.有没有比只投List更好的方法呢?到List,然后使用AddRange? 最佳答案 如果您使用的是C#4,则不需要转换:Listanimals=newList();Listdogs=newList();animals.AddRange(dogs);这是允许的,因为AddRange()接受IEnumerable,即covariant.如果您没有C#4,那么您将不得不迭代List并转换每个项目,因为协方差只是在那时添加。您可以通过.Cast完成

c# - 使用 Linq 从 3 个集合创建项目

我有3个集合,它们的项目数完全相同。我需要根据这3个集合项目值创建一个新集合。例子:Listlist1;Listlist2;Listlist3;Listlist4;publicclassItem{publicdoubleValue1{get;set;}publicdoubleValue2{get;set;}publicdoubleValue3{get;set;}}我尝试使用Linq来实现这一点。我试过了:varquery=fromptinlist1fromatinlist2fromctinlist3selectnewItem{Value1=pt,Value2=at,Value3=ct}

c# - 防止重复的 List<T> 条目

我希望我能够解决这个问题,但我终其一生都无法理解为什么这段代码无法正常运行并允许将重复的条目添加到列表中。永远不会满足if语句条件,即使我从同一位置拖入相同的文件也是如此。我不明白为什么“包含”方法不匹配它们。publicclassForm1:Form{privateListdragDropFiles=newList();privatevoidForm1_DragDrop(objectsender,DragEventArgse){try{if(e.Data.GetDataPresent(DataFormats.FileDrop)){string[]files=(string[])e.D

c# - 在等待 List<Task> 中的所有任务完成时显示进度

我目前正在尝试在一行的末尾连续打印点作为不确定进度的一种形式,同时运行大量任务,使用以下代码:start=DateTime.Now;Console.Write("*Processingvariables");TaskentireTask=Task.WhenAll(tasks);Taskprogress=newTask(()=>{while(!entireTask.IsCompleted){Console.Write(".");System.Threading.Thread.Sleep(1000);}});progress.Start();entireTask.Wait();timeDi

c# - 为什么 List<T> 不实现 IOrderedEnumerable<T>?

我想使用有序的枚举,并使用接口(interface)作为返回类型而不是具体类型。我需要返回一组有序的对象。但是,当使用IList时执行我不能返回IOrderedEnumerable,作为IList不继承IOrderedEnumerable。在下面的示例中,我有一个带有系列存储库的View模型,实现为List。系列对象,因为它们位于List中。,下令。我是一个访问器方法,我想返回经过过滤的系列集合,其中仅返回特定类型的系列对象,同时保持过滤元素之间的原始顺序。//////Representstheviewmodelforthismodule.///publicclassViewModel

c# - 按对象的属性对 List 中的对象进行排序

我有一个C#中的对象列表。所有对象都包含属性code1和code2(以及其他属性)。对象列表没有特定顺序。我需要按对象的code1和code2属性对对象列表进行排序。例子:List->object=id,name,code1,code2,hours,amount.示例代码1=004示例代码2=001、002、003、004、016示例代码1=005示例代码2=001,002,003,004所以在排序后我希望对象按以下顺序004001004002004003004005004016005001005002005003005004 最佳答案