草庐IT

c# - 我可以将 C# 字符串插值与 Linq to SQL 一起使用吗

在使用EF(至少达到6.1.3版)时,假设您有这样一个类:classCustomer{publicstringFirstName{get;set;}publicstringLastName{get;set;}}如果您要获取一个字段FullName,它是(FirstName和LastName)的串联作为查询结果中的字段,您将必须做这样的事情:db.Customers.Select(c=>new{FullName=c.FirstName+""+c.LastName})既然C#中有StringInterpolation,你能不能做这样的事情呢db.Customers.Select(c=>ne

c# - 使用 LINQ to SQL 访问系统数据库/表?

现在我有一个SSIS每天早上运行的软件包,并向我提供有关前一天失败或成功的软件包数量的报告。这些包的信息部分包含在msdb数据库(系统数据库)内的sysjobs表(系统表)中SQLServer2005.当试图将包移动到C#可执行文件时(主要是为了在发送的电子邮件中获得更好的格式),我无法找到一种方法来创建允许我访问这些表的dbml文件LINQ.我试图寻找任何可以使这些表可见的属性,但运气不佳。LINQ to SQL这可能吗?? 最佳答案 如果您在服务器资源管理器中,您可以通过这种方式使它们可见:创建到所需服务器的连接。右键单击服务器

c# - 系统参数异常 : Complex DataBinding accepts as a data source either an IList or an IListSource

我正在使用下面的C#代码来填充WinFormsListBox。但是我想隐藏所有系统文件夹。例如$RecyclingBin。但它给了我以下错误。System.ArgumentException:ComplexDataBindingacceptsasadatasourceeitheranIListoranIListSource.作为LINQ的新手,这让我很困惑。谁能告诉我哪里出错了?string[]dirs=Directory.GetDirectories(@"c:\");vardir=fromdindirswhere!d.StartsWith("$")selectd;listBox.Da

c# - 如何强制我的 lambda 表达式提前求值?修复 lambda 表达式的怪异问题?

我编写了以下C#代码:_locationsByRegion=newDictionary>();foreach(stringregionIdinregionIds){IEnumerablelocationIds=Locations.Where(location=>location.regionId.ToUpper()==regionId.ToUpper()).Select(location=>location.LocationId);//IfIcasttoanarrayhere,itworks._locationsByRegion.Add(regionId,LocationIdsIds)

c# - 检查 IEnumerable 是否少于一定数量的项目而不引起任何不必要的评估?

有时我期望有一定范围的项目,需要进行一些验证以确保我在该范围内。最明显的方法是将集合中的项目数与范围进行比较。publicstaticboolIsWithinRange(thisIEnumerableenumerable,intmax){returnenumerable.Count()尽管如此,我的理解是linqCount()方法会在返回结果之前评估整个枚举。理想情况下,我只会对最少数量的项目进行评估以获得我的结果。在不引起任何不必要的评估的情况下确保可枚举项少于特定数量的最佳方法是什么? 最佳答案 不要使用Count(),如您所知

c# - 有没有办法在 LINQ 中设置值?

是否有更好的方法使用LINQ完成这些分配?IEnumerablesulist1=newlist.Where(c=>c.StatusID==EmergencyCV.ID);foreach(SideBarUnitsuinsulist1)su.color="Red"; 最佳答案 没有。你可以做这样的事情,正如这里的其他答案所指出的,但是你不再使用LINQ。EricLippert写道anexcellentblogpostaboutthisverysubject,我强烈建议您阅读。以下是摘录:Iamphilosophicallyopposed

c# - LINQ to Entities 中的 Enum.HasFlag?

我有一面旗帜,例如[Flags]publicenumDaysOfTheWeek{Monday=1,Tuesday=2,Wednesday=4,Thursday=8,Friday=16,Saturday=32,Sunday=64}如果我想使用Linq基于包含特定标志的变量进行过滤,我可以尝试使用Enum.HasFlag在lambda语句中过滤多个标志,例如DaysOfWeekweekendFilter=DaysOfTheWeek.Saturday|DaysOfTheWeek.Sunday;varweekends=allDays.Where(d=>d.DayOfWeek.HasFlag(w

c# - 两个列表的 linq 并集

我有一个包含多头列表的对象模型。我想获得两个不同实例的多头组合列表。当我写这个时:varMyCombinedList=TheObject1.ListOfLongs.Union(TheObject2.ListOfLongs);我得到一个空列表。请注意,有时TheObject2可以有一个空列表。我做错了什么?谢谢。 最佳答案 使用Concat()这将连接两个序列。所以试试这个:varMyCombinedList=TheObject1.ListOfLongs.Concat(TheObject2.ListOfLongs);祝你好运!!

c# - List<string> 复杂排序

我有一个List尺码,例如XS、S、M、L、XL、XXL、UK10、UK12等我想要的是强制顺序为上面的顺序,不管列表中项目的顺序如何,我想我需要一个IComparable运算符但不确定。理想情况下,我希望有另一个具有正确顺序的列表,它可以引用它在列表中的“位置”并自行重新排序,如果它不存在,它将默认为A-Z 最佳答案 按照您希望的顺序创建一个尺码数组,然后根据尺码在该数组中的位置对衬衫进行排序:string[]sizes=new[]{"XS","S","M","L","XL","XXL","UK10","UK12"};varshi

c# - 我应该转换我的 lambda 还是转换 IEnumerable?

在我的项目中,我有一个MyClass实现了IMyClass。我需要通过转换其他项目的列表来返回IMyClass的列表。为简单起见,假设我可以创建一个MyClass,只需将另一个项目传递给它的构造函数,即newMyClass(item)。考虑以下两行,它们(据我所知)产生相同的结果:varoption1=items.Select(item=>newMyClass(item)).Cast().ToList()varoption2=items.Select(item=>newMyClass(item)asIMyClass).ToList()在我看来,选项#1需要双重枚举,一次是将所有项目转换