Tag: linq

如何使用Expression构建匿名类型?

在C#3.0中,您可以使用Expression创建具有以下语法的类: var exp = Expression.New(typeof(MyClass)); var lambda = LambdaExpression.Lambda(exp); object myObj = lambda.Compile().DynamicInvoke(); 但是如何使用Expression创建Anonymous类? //anonymousType = typeof(new{ Name=”abc”, Num=123}); Type anonymousType = Expression.NewAnonymousType??? <–How to do ? var exp = Expression.New(anonymousType); var lambda = LambdaExpression.Lambda(exp); object myObj = lambda.Compile().DynamicInvoke();

用于SequenceEqual的IEqualityComparer

在C#中,是否存在使用SequenceEqual方法确定相等性的IEqualityComparer ?

Linq where column ==(null reference)与column == null不同

我遇到了linq-to-sql的一个相当奇怪的问题。 在以下示例中, var survey = (from s in dbContext.crmc_Surveys where (s.crmc_Retail_Trade_Id == tradeId) && (s.State_.Equals(state)) select s).First(); 如果tradeId为null,则其行为不像我特意指定null那样, var survey = (from s in dbContext.crmc_Surveys where (s.crmc_Retail_Trade_Id == null) && (s.State_.Equals(state)) select s).First(); 这是我想要的行为。 事实上,除非两个值都为非null,否则它不会返回任何内容。 我无法弄清楚如何完成这几个不同的linq查询。 有任何想法吗?

使用Linq除了不按我的想法工作

List1包含项{ A, B } , List2包含项{ A, B, C } 。 我需要的是当我使用Except Linq扩展时返回{ C } 。 相反,我得到了返回{ A, B } ,如果我在表达式中翻转列表,结果是{ A, B, C } 。 我是否误解了Except的观点? 还有其他我没有看到使用的扩展吗? 到目前为止,我已经查看并尝试了很多不同的post,但没有成功。 var except = List1.Except(List2); //This is the line I have thus far 编辑:是的我正在比较简单的对象。 我从未使用过IEqualityComparer ,了解它很有趣。 谢谢大家的帮助。 问题不是实现比较器。 链接的博客文章和下面的示例有帮助。

使用LINQ在List中查找项目但获取“Value不能为null。 参数名称:source“

使用LINQ从列表中获取数据时遇到此错误。 怎么解决这个问题? 值不能为空。 参数名称:source var nCounts = from sale in sal select new { SaleID = sale.OrderID, LineItem = from sli in sale.LineItems group sli by sli.Item into ItemGroup select new { Item = ItemGroup.Key, Weeks = ItemGroup.Select(s => s.Week) } }; foreach (var item in nCounts) { foreach (var itmss in item.LineItem) { // […]

在c#中添加两个不同长度的列表

List a = new List{1,2,3}; List b = new List{1,2,3,4,5}; a + b应该给我2,4,6,4,5 显然我可以写一个循环,但有更好的方法吗? 用linq?

LINQ表达式语法如何与Include()一起用于预先加载

我在下面有一个查询,但我想对eager load属性执行Include()。 Actions有一个导航属性,User(Action.User) 1)我的基本查询: from a in Actions join u in Users on a.UserId equals u.UserId select a 2)第一次尝试: from a in Actions.Include(“User”) join u in Users on a.UserId equals u.UserId select a 但是没有填充Action.User。 3)尝试将’User’加载到查询之外的导航属性中: (from a in Actions join u in Users on a.UserId equals u.UserId select a).Include(“User”) 在LINQPad尝试包含的我得到一个错误: ‘System.Linq.IQueryable’不包含’Include’的定义,也没有扩展方法’Include’接受类型’System.Linq.IQueryable’的第一个参数可以找到(按F4添加using指令或程序集引用) 我认为这是因为LINQ不支持Include()。 所以我在VS中尝试过; 查询2运行,但返回未填充的用户属性。 查询3扩展方法似乎不存在,虽然它确实存在于Action本身而没有查询。

LINQ to Entities消息中仅支持无参数构造函数和初始值设定项

我有一个从EF模型返回数据的方法。 我收到了上述消息,但我无法告诉我们如何规避问题。 public static IEnumerable GetFundedCount() { var today = DateTime.Now; var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month); var day1 = DateTime.Now.AddDays(-1); var day31 = DateTime.Now.AddDays(-31); using (var uow = new UnitOfWork(ConnectionString.PaydayLenders)) { var r = new Repository(uow.Context); return r.Find() .Where(x => x.AppliedOn >= day1 && x.AppliedOn new { x.BuyerId, x.AppliedOn }) .Select(x => new FundedCount( x.Key.BuyerId, […]

MongoDB Linq是否有“解释查询”?

有没有办法在Linq查询上运行.explain()或等效的? 我想知道 实际JSON查询的文本 .explain()的输出(使用的索引等) 拥有查询的执行时间也很好

Linq表达式中的Int.Parse

我有以下linq表达式。 我想在Nvarchar字段中计算数值的总和。 我使用以下代码来执行此操作。 但是当我尝试运行它时出现错误。 var m = new MaterialModelContainer(); var list = (from x in ( from inv in m.INVs join l in m.LIBs on inv.MESC equals l.MESC join o in m.OUTs on inv.MESC equals o.MESC join t in m.TRANs on inv.MESC equals t.MESC where t.TYPE == “60” select new { l.MESC, l.LINE_NO, l.UNIT_LINE, Description […]