草庐IT

Linq2XSD

全部标签

c# - LINQ: ...Where(x => x.Contains(以 "foo"开头的字符串 ))

给定以下类的集合:publicclassPost{...publicIListTags{get;set;}}有没有一种简单的方法可以使用LINQ获取所有包含以“foo”开头的标签的Post?varposts=newList{newPost{Tags=new[]{"fooTag","tag"}},newPost{Tags=new[]{"barTag","anyTag"}},newPost{Tags=new[]{"someTag","fooBarTag"}}};varpostsWithFooTag=posts.Where(x=>[somefancyLINQqueryhere]);posts

c# - 返回 LINQ 结果时何时调用 ToList 的经验法则

我正在寻找在IEnumerables上调用ToList/ToArray/MemoizeAll(Rx)的经验法则,而不是在返回时返回查询本身IEnumerable的东西。我经常发现最好只返回查询并让调用者决定是否需要列表,但有时由于linq的懒惰特性,它可能会回来咬你一口。我想收集指南,例如:CallToListif:youcreatenewobjects(eg.inaselect)youhavesideeffectsinyourqueryOtherwise,returnthequery 最佳答案 首先,您永远不应该在查询中产生副作用

c# - linq 无法对 'Table(req)' 执行创建、更新或删除操作,因为它没有主键

当表没有主键时,我如何在表中添加行。 最佳答案 正如您的问题标题所说,LINQtoSQL无法对没有主键的表执行创建、更新或删除操作。这是不可能的。因此,您可能需要使用DataContext.ExecuteCommand()做这些事情,或者更好的是,重构您的数据库,使表具有主键。 关于c#-linq无法对'Table(req)'执行创建、更新或删除操作,因为它没有主键,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c# - 将 LINQ 与 CancellationToken 一起使用的正确方法

我正在尝试使用CancellationToken编写支持取消的LINQ查询.NET框架中提供的机制。但是,尚不清楚结合取消和LINQ的正确方法是什么。使用PLINQ,可以这样写:varresultSequence=sourceSequence.AsParallel().WithCancellation(cancellationToken).Select(myExpensiveProjectionFunction).ToList();不幸的是,WithCancellation()仅适用于ParallelEnumerable-因此它不能与普通的旧LINQ查询一起使用。当然,可以使用With

c# - 为什么我不能在 ListView.SelectedItems 上使用 LINQ?

我正在尝试在ListView.SelectedItems上使用.Select扩展方法,它是SelectedListViewItemCollection,但是.Select没有出现在intellisense中。我可以在SelectedListViewItemCollection上使用foreach,所以它一定已经实现了IEnumerable。我刚刚查看了MSDN,确实如此。那为什么不能在上面使用LINQ扩展方法呢? 最佳答案 原因是SelectedItems被类型化为一个实现IEnumerable的集合。Select扩展方法绑定(bi

c# - 如何使用动态LINQ(System.Linq.Dynamic)进行LIKE操作?

任何人都可以告诉我如何使用System.Linq.Dynamic来使用LIKE运算符吗??我需要在我的动态where查询中添加多个LIKE表达式/*varquery=db.Customers.Where("CityNameLike@0orCityNameLike@1","London","USA")*/varquery=db.Customers.Where("CityNameLike@0orCityNameLike@1%","London","USA")谢谢你 最佳答案 尝试简单地使用“CityName.Contains(@1)”,

c# - 使用 linq 2 实体检查 where 子句的两个条件

嗨,我有一个名为products的表,其中包含列product_idprodcut_nameprodcut_price(valueslike1200,2000,3000,100)prodcut_desccategory_id(1,2,3,.....)另一个带有列的表格类别category_id(1,2,3.......)category_name(a,b,c....)实体名称是dbcontext...如何获得类别名称为“a”且产品价格为>500且我正在使用linqtoentities...请帮忙解决这个问题......一个......非常感谢.... 最佳答

c# - 使用 Entity + LINQ 如何不只是本质上对我的查询进行硬编码?

所以我已经使用Entity+LINQ进行了一段时间的开发,我真的开始想知道最佳实践。我习惯了“如果我需要获取数据,引用一个存储过程”的模型。如果需要,可以即时更改存储过程,并且不需要重新编译代码。我发现我的代码中的查询看起来像这样:ListintList=(fromqueryincontext.DBTablewherequery.ForeignKeyId==fkIdToSearchForselectquery.ID).ToList();我开始想知道那和这之间有什么区别:ListintList=SomeMgrThatDoesSQLExecute.GetResults(string.For

c# - 使用 LINQ 获取二维数组的最小值和最大值

如何使用LINQ获取二维数组的最小值和最大值?需要明确的是,我指的是数组中所有项目的最小值/最大值(不是特定维度的最小值/最大值)。还是我只需要通过老式的方式循环? 最佳答案 由于Array实现了IEnumerable,您可以这样做:vararr=newint[2,2]{{1,2},{3,4}};intmax=arr.Cast().Max();//orMin 关于c#-使用LINQ获取二维数组的最小值和最大值,我们在StackOverflow上找到一个类似的问题:

c# - 在 LINQ 中用 SingleOrNew() 方法代替 SingleOrDefault() 怎么样?

SingleOrDefault()方法很棒,因为如果您调用它的集合为空,它不会抛出异常。但是,有时我想要的是在不存在的情况下获取某种类型的新对象。例如,如果我可以执行以下操作,那就太好了:varclient=db.Clients.Where(c=>c.Name=="SomeClient").SingleOrNew();这样我就不必检查它是否为null,如果它是创建一个新的,我总是知道我的client对象将是我可以立即使用。有什么想法吗? 最佳答案 真的,您只想使用nullcoalescing运营商在这里。示例:varclient=d