草庐IT

list_item

全部标签

c# - Casting List<T> - 协方差/逆变问题

给定以下类型:publicinterfaceIMyClass{}publicclassMyClass:IMyClass{}我想知道如何转换List到List?我对协变/逆变主题不是很清楚,但我知道我不能因此而简单地使用List。我只能想出这个微不足道的解决方案;缺乏优雅,浪费资源:...publicListConvertItems(Listinput){varresult=newList(input.Count);foreach(varitemininput){result.Add(item);}returnresult;}....如何以更优雅/更高效的方式解决它?(请注意,我需要.N

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - List<T>.Contains() 如何找到匹配项?

我有一个汽车对象列表Listcars=GetMyListOfCars();我想看看列表中是否有汽车if(cars.Contains(myCar)){}Contains使用什么来确定myCar是否在列表中。它是否对我的汽车对象执行“ToString()”。它是否使用Equals()方法,即gethashcode()?我知道我可以传递我自己的IEqualityComparer来强制我自己的实现,但只是想了解它默认情况下的作用。 最佳答案 直接来自MSDN-List.Contains:Thismethoddeterminesequalit

c# - 将填充的 List<BaseClass> 转换为 List<ChildClass>

我有一个List里面有成员。我想将列表(及其所有成员)转换为类型List,其中ChildClass继承BaseClass.我知道我可以通过foreach获得相同的结果:ListChildClassList=newList();foreach(variteminBaseClassList){ChildClassList.Add(itemasChildClass);}但是有没有更简洁的方法呢?注意-这是在WP7平台上完成的。 最佳答案 如果你真的确定所有元素都是可类型转换的,你可以这样做:ChildClassList=BaseClass

c# - 使用 ProjectItems.item

在使用NuGet时,我尝试使用powershell脚本将文件更改为嵌入式资源。我正在使用论坛上推荐的小型powershell脚本here.但是,我的脚本仅在文件不在文件夹中时才有效。param($installPath,$toolsPath,$package,$project)$item=$project.ProjectItems.Item("Folder\ReleaseNotes.txt")$item.Properties.Item("BuildAction").Value=[int]3即使文件位于文件夹中,我如何调整此行以查找文件:$item=$project.ProjectIte

c# - 如何将 DataSource 转换为 List<T>?

我有以下在DataGridView上加载产品的方法privatevoidLoadProducts(Listproducts){Source.DataSource=products;//SourceisBindingSourceProductsDataGrid.DataSource=Source;}现在我正试图将它们还给我以保存它们,如下所示。privatevoidSaveAll(){Repositoryrepository=Repository.Instance;Listproducts=(List)Source.DataSource;Console.WriteLine("Estees

c# - 如何并行启动 List<Task>?

我有一个返回System.Threading.Tasks.Task的对象:publicclassMyClass{publicTaskGetTask(objectstate,CancellationTokencancellationToken){returnnewTask(Execute,state,cancellationToken);}publicvoidExecute(objectcontext){//dostuff}}在其他地方我有一个List,所以我执行以下操作以获得List:varmyTaskList=myClassList.Select(p=>p.GetTask(null,

c# - 'System.Collections.Generic.List<float >' does not contain a definition for ' Sum'

我正在尝试使用内置的Sum()函数对float列表求和,但我不断收到此错误:ErrorCS1061:'System.Collections.Generic.List'doesnotcontainadefinitionfor'Sum'andnoextensionmethod'Sum'acceptingafirstargumentoftype'System.Collections.Generic.List'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)(CS1061)我有usingSystem.Collect

c# - 无法将类型 '.List<AnonymousType#1>' 隐式转换为 '.List<WebApplication2.Customer>'

在以下返回列表的代码中:publicListGeAllCust(){varresults=db.Customers.Select(x=>new{x.CustName,x.CustEmail,x.CustAddress,x.CustContactNo}).ToList()returnresults;}我收到C#无法转换列表的错误报告:Error:CannotimplicitlyconverttypeSystem.Collections.Generic.ListtoSystem.Collections.Generic.List这是为什么?下面的屏幕截图显示了VisualStudio在错误的

c# - Visual Studio 包 : Settings the visibility of a custom Solution Explorer context menu item

我正在创建一个VisualStudio包(这是我的第一次),我的最终目标是为解决方案资源管理器创建一个上下文菜单项,该菜单项仅适用于某些文件类型。(我以为这会很常见,但没有找到任何像样的教程,所以如果你知道请告诉我)我遵循了一个简单的MSDN指南,首先在工具栏中创建了一个项目(我忘记了链接它的位置)并且效果很好。然后我找到了一种将其移至“解决方案资源管理器”上下文菜单的方法。这是通过操作.vsct文件并具有如下元素来实现的:这可能并不重要,但我正在尝试设置场景。现在,因为我只想显示某些文件类型的项目,所以我需要找到一种方法来在按下右键单击按钮时检查文件。缩短搜索时间,我foundthi