Tag: linq

C#中简单的LINQ问题

我试图使用LINQ返回一个发生最大次数的元素及其发生的次数。 例如:我有一个字符串数组: string[] words = { “cherry”, “apple”, “blueberry”, “cherry”, “cherry”, “blueberry” }; //… Some LINQ statement here //… 在此数组中,查询将返回cherry作为最大发生元素,并返回3作为其发生的次数。 如果有必要,我也愿意将它们分成两个查询( 即,第一个查询获取cherry ,第二个返回3计数。

如何在查询LINQ中表达IN(参数列表)?

你如何写一个linq查询来表达这个: Select * from Table where column IN (some values); 通过某些值,我的意思是(’Value1’,’Value2’,’value3’,……) 。 谢谢你的帮助

过滤ObservableCollection?

当我将ListBox直接绑定到ObservableCollection时,我得到了我的ListBox中显示的实时更新,但是只要我在混合中添加其他LINQ方法,我的ListBox就不再被告知对ObservableCollection的任何更改。 在这里,让我举一个例子来说明; public partial class MainPage : PhoneApplicationPage { ObservableCollection Words = new ObservableCollection(); public MainPage() { InitializeComponent(); listBox1.ItemsSource = Words; } private void AddButton_Click(object sender, RoutedEventArgs e) { Words.Add(DateTime.Now.ToString()); } } 在这里,我向一个简单的页面添加了一个Button和一个ListBox,然后单击该按钮使新项目立即出现在ListBox中。 但是,如果我改变了 listBox1.ItemsSource = Words; 至 listBox1.ItemsSource = Words.Where(w => w.Contains(“:”)); ListBox不再更新。 如何在我的ObservableCollection和ListBox之间添加“filter”,并且仍然可以在不必再次设置.ItemsSource的情况下进行更新?

Linq:在数据表列中选择值

如何使用LINQ (C#)为特定行中的特定行选择值。 等效的SQL将是: select NAME from TABLE where ID = 0 提前致谢。

表达式树lambda可能不包含空传播运算符

问题 :线路price = co?.price ?? 0, price = co?.price ?? 0,在下面的代码中给出了我上面的错误。 但如果我删除? 来自co.? 它工作正常。 我试图按照他们使用的MSDN示例进行操作? 在线select new { person.FirstName, PetName = subpet?.Name ?? String.Empty }; select new { person.FirstName, PetName = subpet?.Name ?? String.Empty }; 那么,似乎我需要了解何时使用? 与?? 什么时候不去。 错误 : 表达式树lambda可能不包含空传播运算符 public class CustomerOrdersModelView { public string CustomerID { get; set; } public int FY […]

|| 使用C#的Linq中的(或)运算符

我正在使用linq过滤选择的MessageItems。 我编写的方法接受一堆可能为null的参数。 如果它们为null,则应忽略该文件的条件。 如果它不为null,则使用它来过滤结果。 这是我的理解,当做一个|| operation是C#,如果第一个表达式为true,则不应计算第二个表达式。 例如 if(ExpressionOne() || ExpressionTwo()) { // only ExpressionOne was evaluated because it was true } 现在,在linq,我正在尝试这个: var messages = (from msg in dc.MessageItems where String.IsNullOrEmpty(fromname) || (!String.IsNullOrEmpty(fromname) && msg.FromName.ToLower().Contains(fromname.ToLower())) select msg); 我原以为这会是合理的,因为String.IsNullOrEmpty(fromname)将等于true而String.IsNullOrEmpty(fromname)的第二部分 不会跑。 然而,它确实运行,第二部分 msg.FromName.ToLower().Contains(fromname.ToLower())) 抛出空引用exception(因为fromname为null)!! – 我得到一个经典的“对象引用未设置为对象的实例”exception。 有帮助吗?

DISTINCT()和ORDERBY问题

我正在学习LINQ-to-SQL,一切都很顺利,直到发生奇怪的事情: 我试着做一个distinct的例子,所以,使用Northwind dabatase我写了以下查询: var query = from o in db.Orders orderby o.CustomerID select new { o.CustomerID }; 如果我打印LINQ-to-SQL为查询中存储的query生成的SQL,它看起来像这样: SELECT [t0].[CustomerID] FROM [dbo].[Orders] AS [t0] ORDER BY [t0].[CustomerID] 因此,像往常一样,查询会按字母顺序排列Orders表中每个Order所有CustomerID 。 但! 如果我像这样使用Distinct()方法: var query = ( from o in db.Orders orderby o.CustomerID select new { o.CustomerID }).Distinct(); 该查询带来了Distinct子句的预期结果,但是尽管我通过orderby o.CustomerID编写了orderby o.CustomerID ,但是没有订购CustomerID ! 第二个LINQ查询的SQL查询如下: SELECT DISTINCT [t0].[CustomerID] […]

按年份分组,然后按月分组

我需要一些LINQ-2-SQL的帮助,以便按一年和一个月分组一些博客文章。 基本上,我有一系列具有以下属性的博客文章 ID 标题 日期 我想能够遍历每年,然后遍历那一年的每个月,最后,遍历那个月内的每篇博文。 就像是 2011 四月(显示post数量) 随机发布1 随机发布2 五月(显示post数量) 随机发布2 等等… 有没有办法使用group by子句使用单个LINQ查询执行此操作? 据我所知 var groupedBlogPosts = (from p in blogPostsFiltered group p by new { month = p.Date.Month, year = p.Date.Year } into d select new { postDate = string.Format(“{0}/{1}”, d.Key.month, d.Key.year), postCount = d.Count() });

首先通过将type作为参数传递,在Entity Framework DB中动态实例化Model对象

需要通过将表名作为参数(在DB第一种方法中生成的模型并使用EF 6.0)动态创建entity framework生成的Model类的实例 喜欢, // Input Param string tableName // Context always same DBContext dbContext= new DBContext(); //Need to create object query dynamically by passing //table name from front end as below IQueryable query = dbContext.”tableName “; 需要传递100多个表作为输入参数并且所有表的结构相同。 请帮忙。

使用Linq不等于

我在C#app.A和B中有2个列表集合。 两个集合都有客户对象,其具有Id和Name属性。通常,A有比B更多的项目。 使用Linq,我想只返回ID在A但不在B中的客户。 我该怎么做呢?