Tag: linq

C#:从字典中删除重复值?

如何从可能具有重复值的字典中创建没有重复值的字典? IDictionary myDict = new Dictionary(); myDict.Add(“1”, “blue”); myDict.Add(“2”, “blue”); myDict.Add(“3”, “red”); myDict.Add(“4”, “green”); uniqueValueDict = myDict.??? 编辑: – 我不在乎保留哪个键。 – 是否有使用Distinct()操作的东西?

如何在LINQ查询语言中使用where / index?

是否有可能使用查询语言编写此…而不是方法链? notifications.Where((n, index) => n.EventId == m_lastSelectedEventID) .Select((n, index) => new {Position = index}).FirstOrDefault(); 谢谢,拉杜

Linq PredicateBuilder – 多个OR

我正在尝试使用PredicateBuilder,如下所述 – http://www.albahari.com/nutshell/predicatebuilder.aspx 以下代码 var predicate = PredicateBuilder.False(); predicate = predicate.Or(p => p.Locality.Contains(criteria.Locality)); predicate = predicate.Or(p => p.Name.Contains(criteria.Name)); predicate = predicate.Or(p => p.Town.Contains(criteria.Town)); List streetData = StreetData.Instance(); var streetList = from street in streetData.Where(predicate) select street; 根据这个例子,据我所知,这应该有效 var newKids = Product.ContainsInDescription (“BlackBerry”, “iPhone”); var classics = Product.ContainsInDescription (“Nokia”, “Ericsson”) .And (Product.IsSelling()); var query = from […]

无法将类型’System.Linq.IQueryable’隐式转换为’System.Data.Entity.DbSet’

我是Linq新手,所以下面有这些情况。 现在编译时出现以下错误,表示Cannot implicitly convert type ‘System.Linq.IQueryable’ to ‘System.Data.Entity.DbSet’. var query = _db.Products; if (bool) { query = query.Where(p => p.Id == id); } 因此我尝试将var更改为IQueryable并且它可以工作。 IQueryable query = _db.Products; if (bool) { query = query.Where(p => p.Id == id); } 但后来,我试图再次改变它(见下文)并且它有效。 var query = from product in products select product; if (bool) { query = query.Where(p […]

如何检查ObjectQuery 表达式树中是否存在OrderBy

我正在使用T4为LINQ to Entities实体生成存储库。 存储库包含(除其他外)适合于分页的List方法。 支持和不支持的方法的文档没有提到它,但你无法“调用” Skip无序的IQueryable 。 它会引发以下exception: System.NotSupportedException:方法’Skip’仅支持LINQ to Entities中的排序输入。 必须在方法’Skip’之前调用’OrderBy’方法。 我通过允许通过部分方法定义默认排序来解决它。 但是我在检查表达式树是否确实包含OrderBy遇到了问题。 我已经将问题减少到尽可能少的代码: public partial class Repository { partial void ProvideDefaultSorting(ref IQueryable currentQuery); public IQueryable List(int startIndex, int count) { IQueryable query = List(); ProvideDefaultSorting(ref query); if (!IsSorted(query)) { query = query.OrderBy(c => c.CategoryID); } return query.Skip(startIndex).Take(count); } public IQueryable List(string sortExpression, int […]

如何计算LINQ(到数据集)中DataTable列的总和?

我刚刚开始阅读LINQ,我想开始将它合并到我的代码中。 我知道如何通过“Foreach” – 通过行或通过在特定列上执行compute.sum来计算DataTable列的总和。 如何使用LINQ to DataSet进行等效操作?

Linq选择新对象

我有一个linq查询 var x = (from t in types select t).GroupBy(g =>g.Type) 它按类型对对象进行分组,因此我想要包含所有分组对象及其计数的单个新对象。 像这样的东西: type1, 30 type2, 43 type3, 72 更清楚:分组结果应该在一个对象中,而不是每个项目类型的对象

使用LINQ聚合的entity framework来连接字符串?

这对我来说很容易在TSQL中执行,但我只是坐在这里,试着让它在EF4中工作! 我有一个表,让我们称之为TestData。 它有字段,比如:DataTypeID,Name,DataValue。 DataTypeID, Name, DataValue 1,”Data 1″,”Value1″ 1,”Data 1″,”Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 我想对DataID / Name进行分组,并将DataValue连接成CSV字符串。 期望的结果应包含 – DataTypeID, Name, DataValues 1,”Data 1″,”Value1,Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 现在,我正在努力做到这一点 – var query = (from t in context.TestData group h by new { DataTypeID = h.DataTypeID, Name = h.Name } into g select new { DataTypeID […]

Linq到文本文件

我有一个文本文件(抱歉,我不允许处理XML文件:(),它包括客户记录。每个文本文件如下所示: Account_ID: 98734BLAH9873 User Name: something_85 First Name: ILove Last Name: XML Age: 209 等等……我需要能够使用LINQ从这些文本文件中获取数据,并将它们存储在内存中。 我见过很多Linq to SQL,Linq到BLAH,但没有Linq to Text。 有人可以请我帮助我吗? 谢谢

Enumerable.Cast 扩展方法无法从int转换为long,为什么?

可能重复: 令人费解的Enumerable.Cast InvalidCastException 嗨, 我刚刚注意到Enumerable.Cast扩展方法有些奇怪……似乎它无法从int为long ,即使这个转换是完全合法的。 以下代码因InvalidCastException失败: foreach (var item in Enumerable.Range(0,10).Cast()) { Console.WriteLine(item); } 但是这个代码,我认为是相同的,确实有效: foreach (var item in Enumerable.Range(0,10).Select(i => (long)i)) { Console.WriteLine(item); } 谁能解释这种行为? 我用Reflector查看了Cast方法的代码,但是Reflector无法解释迭代器块,所以很难理解……