草庐IT

list_block

全部标签

c# - 查询 List<T> 或数据库更快吗?

我最近有几种情况需要同一张表中的不同数据。一个例子是我将遍历每个“送货司机”并为他们要送货的每个客户生成一个可打印的PDF文件。在这种情况下,我把所有的customer拉过来,存入ListAllCustomersList=customers.GetAllCustomers();当我遍历送货司机时,我会做这样的事情:ListDeliveryCustomers=AllCustomersList.Where(a=>a.DeliveryDriverID==DriverID);我的问题:每次查询与送货司机相关的客户记录时,我通过查询List对象的方式是否比查询数据库更快?

c# - 等同于 C# 中 VB 的自定义 RaiseEvent block ?

(我知道标题听起来很简单,但等等——这可能不是您认为的问题。)在VB.NET中,我能够编写自定义事件。例如,我有一个单独的线程会定期引发一个事件,并且在该事件上需要更新GUI。我不想让繁忙的线程打扰UI计算,也不想将Me.Invoke(Sub()...)放在事件处理程序中,因为它也是从GUI线程调用的。我想出了这段非常有用的代码。GUI线程将设置EventSyncInvoke=Me(主窗体)。然后线程可以像往常一样简单地引发事件TestEvent,无需特殊代码,它将在GUI线程上无缝执行:PrivateTestEventDelegateAsEventHandlerPublicEvent

c# - 将 null 添加到 List<bool?> 作为 IList 抛出异常

使用.NET3.5和C#3.0,IListlist=newList();list.Add(null);这会抛出一个ArgumentException,感觉不对。Listlist=newList();list.Add(null);完美运行。那么这是Microsoft代码中的错误吗?如何在现实生活中产生这种错误的例子:newJavaScriptSerializer().Deserialize>("[true,false,null]"); 最佳答案 是的,是的。参见http://social.msdn.microsoft.com/Foru

c# - List<T> 没有实现 SyncRoot!

每个人都使用很多列表。我需要遍历这个列表,所以我使用已知的SyncRoot模式。最近我注意到this发布应该避免使用SyncRoot以支持“嵌入式”线程安全(每个方法将锁定一个私有(private)对象而不使用SyncRoot属性公开它)。我能理解,部分同意。问题是List类不实现SyncRoot属性,即使实现了ICollection接口(interface),它公开了SyncRoot属性。我说这会破坏代码Listlist=newList()list.SyncRoot;给我以下编译器错误:errorCS0117:'System.Collections.Generic.List'does

c# - 编辑 List<Tuple> 项

用List你可以用这个简单地编辑一个项目:varindex=List.FindIndex(s=>s.Number==box.Text);List[index]=newString;但是,如何将它应用于List>例如? 最佳答案 您可以用类似的方式找到索引-通过对列表中的每个元组应用条件:varindex=listOfTuples.FindIndex(t=>t.Item1==box1.Text||t.Item2==box2.Text);您可以通过调用Tuple.Create来替换一个项目:listOfTuples[index]=Tup

c# - WPF:使路径的整个 "block"可点击

我的一些Button有一个特殊的ControlTemplate。这很好用,但由于我使用的是Path(在本例中,它的形状就像一个胖X),确切的路径是可点击的,而不是X角之间的小空间。是否有任何自动魔法可以使X的整个“block”可点击?我考虑过将路径包裹在一个矩形对象中,但我只是想确保我没有遗漏一些微不足道的东西。 最佳答案 AviadP.是正确的。这就是我所做的:这是有效的,因为当“HitTest”以确定鼠标点击的路径时,“透明”画笔被认为是一种常规颜色。 关于c#-WPF:使路径的整个

c# - C# : generate a list of two dimension arrays with the same shape 中的 FsCheck

假设我正在编写一些视频分析代码。这是视频类的简化版本:publicclassVideo{publicreadonlyintWidth;publicreadonlyintHeight;publicreadonlyListFrames;publicVideo(intwidth,intheight,IEnumerableframes){Width=width;Height=height;Frames=newList();foreach(varframeinframes){if(frame.GetLength(0)!=height||frame.GetLength(1)!=width){thr

c# - ActionResult<IEnumerable<T>> 必须返回一个 List<T>

使用ASP.NETCore2.1获取以下代码:[HttpGet("/unresolved")]publicasyncTask>>GetUnresolvedIdentities(){varresults=await_identities.GetUnresolvedIdentities().ConfigureAwait(false);returnresults.ToList();}自从GetUnresolvedIdentities()我就想到了返回IEnumerable我可以返回returnawait_identities.GetUnresolvedIdentities().Configu

c# - AllowUserToAddRows 不适用于 DataGridView 上的 List<> 数据源

我有一个DataGridView与DataSource设置为List但是,当我设置AllowUserToAddRows时,新行指示器不显示至true,当我设置DataSource至BindingList,这似乎解决了问题。问:应该替换我的List与BindingList或者有更好的解决方案? 最佳答案 是否myClass有一个公共(public)的无参数构造函数?如果不是,您可以从BindingList派生并覆盖AddNewCore调用您的自定义构造函数。(edit)或者-只需将您的列表包装在BindingSource中它可能会起作

c# - 正确公开 List<T>?

我知道我不应该公开List在一个属性中,但我想知道正确的方法是什么?例如,这样做:publicstaticclassClass1{privatereadonlystaticList_list;publicstaticIEnumerableList{get{return_list;//return_list.AsEnumerable();behavesthesame}}staticClass1(){_list=newList();_list.Add("One");_list.Add("Two");_list.Add("Three");}}将允许我的调用者简单地转换回List:privat