Tag: linq

你可以将多个列表与LINQ结合使用吗?

说我有两个清单: var list1 = new int[] {1, 2, 3}; var list2 = new string[] {“a”, “b”, “c”}; 是否可以编写一个LINQ语句来生成以下列表: var result = new []{ new {i = 1, s = “a”}, new {i = 1, s = “b”}, new {i = 1, s = “c”}, new {i = 2, s = “a”}, new {i = 2, […]

Linq选择所有项目匹配数组

我有一个IEnumerable类型的数据集合,其中包含各种员工的人工记录。 我希望过滤列表并仅返回所选员工的记录,这些记录由包含EmployeeID的int[] employees列表指定。 class LabourHours { public int ID {get;set;} public int EmployeeID {get;set;} public int HoursWorked {get;set;} } 我怎么会这样呢? 我确信之前已经问过,但我在这里找不到类似的东西。 我发现最接近的是用UserID对记录进行分组,这不是我需要的 – 我需要实际的记录。

LINQ Single()0或多个项目的例外

我有一些IEnumberable项目集合。 我使用.Single()来查找集合中的特定对象。 我选择使用Single()因为只应该有一个特定的项目。 但是,如果不存在,那么我需要创建它并将其添加到集合中。 我的问题是如果没有与谓词匹配的项目或者有多个项目, Single()会抛出相同的错误。 我的想法是将Single()调用放在try中并捕获exception,添加项目,然后继续。 但是,由于两种情况都会抛出InvalidOperationException ,如何判断它是否由于没有项目或多项? 我知道我可以使用First()但这并没有强制说应该只有一个(没有做额外的工作)。 我也可以在Single()调用之前使用Count() ,但这似乎只是破坏了Single()的要点

如何计算时间间隔?

我有一个问题,我解决了,但我写了一个很长的程序,我不能确定它涵盖了所有可能的情况。 问题: 如果我有一个主间隔时间 ( From A to B )和次要间隔时间 (很多或没有) (`From X to Y AND From X` to Y` AND X“ to Y“ AND ….`) 我希望在有效和最少数量的条件(SQL服务器过程和C#方法)中以几分钟的时间间隔将我的主间隔时间(AB)的所有部分从辅助时间间隔中除去 ? 例如:如果我的主要间隔从02:00 to 10:30并且说一个次要间隔从04:00 to 08:00 现在我想要这个结果: ((04:00 – 02:00) + (10:30 -08:00))* 60 图表示例: 在第一种情况下,结果将是: ((XA) + (BY)) * 60 当我有许多次要时期时会更复杂。 注意: 可能是仅当我必须将主周期[A,B]与至多两个并行的次要间隔集合的UNION进行比较时发生的次要间隔之间的重叠。第一组必须仅包含一个次要间隔而第二组必须包含set包含(很多或没有)次要区间。例如,在比较[A,B]和( 2,5 )的图中,第一组(2)由一个次级区间组成,第二组(5)由三个次要间隔。 这是最糟糕的情况,我需要处理。 例如 : […]

Complex Linq查询无法按预期工作

我想组合4个表的结果,并使用LINQ选择特定的字段。 请耐心等待,因为我没有完成复杂的LINQ查询。 表1 – 订户 表2 – 订阅 表3 – 国家 表4 – 国家 注意:订户可以拥有0,1或多个订阅。 这意味着外键(SubscriberID)是Subscription表的一部分 查询应该从订户表中返回每个订户一次。 订户是否有订阅并不重要。 我需要在结果列表中拥有所有订阅者。 这是它变得复杂的地方: 在结果列表中,我想要包含一个属性’PubName’。 此属性是逗号分隔的字符串,其中包含订阅者订阅的pub名称。 PubName是Subscription表中的一列。 我在SQL中编写了一个存储过程,使用附加函数构造每个订阅者的PubName字段。 例如:我们的列表有3行: Victor,123 W 45th st#43,New York,NY,’Mag A,Mag B,Mag C’ (Victor订阅Mag A,B和C) Dan,564 E 23rd st FL3,New York,NY,’Mag A,Mag D,Mag F’ (Dan订阅Mag A,D和F) Nicole,78 E 12rd st#3,New York,NY,’NULL’ (妮可没有订阅) var model = […]

Linq查询过滤列表中的id c#

我有一个结果列表列表,其中包含List里面的内容。我有另一个列表,其中只包含List。我想使用数据中的linq查询进行过滤,它应返回包含第二个技能ID的所有数据名单。 var list = this._viewModel.Data.Select(T => T.SkillsList); var filtered = item.Skills.Contains(list.Where(t=>t.ToString()).ToList(); 从第一个列表中它包含技能列表中的小数列表; item.Skills包含字段为技能和代码的列表。 item是另一个包含技能列表的对象。

Linq All on empty collection

我需要检查所有定义是否包含一些特定数据。 除了GroupBy返回空集合的情况外,它工作正常。 var exist = dbContext.Definitions .Where(x => propertyTypeIds.Contains(x.PropertyTypeId) && x.CountryId == countryId) .GroupBy(x => x.PropertyTypeId) .All(…some condition…); 如何重写这样所有All将在空集合上返回false? 更新:这是一个LINQ to SQL,我想在单个调用中执行它。 更新2:我认为这有效: var exist = dbContext.Definitions .Where(x => propertyTypeIds.Contains(x.PropertyTypeId) && x.CountryId == countryId) .GroupBy(x => x.PropertyTypeId) .Count(x => x .All(…some condition…)) == propertyTypeIds.Count;

如何在构建动态LINQ表达式时检测IsNull / NotNull?

我正在构建动态LINQ表达式,稍后会对其进行评估。 因此,例如,如果我想知道某些属性是否等于某个值,我会这样做: // MemberExpression property; // int? val; Expression.Equal(property, Expression.Constant(val)) 但是,我似乎无法找到一种方法来检测val是Null还是NOT Null。 有人可以向我推荐怎么做吗? 我试过这个: Expression.Equal(property, Expression.Constant(null, property.Type)); 但很明显,那是行不通的。

创建N个对象并将它们添加到列表中

我有一个方法,它接受N,我想要创建的对象的数量,我需要返回N个对象的列表。 目前我可以用一个简单的循环来做到这一点: private static IEnumerable Create(int count, string foo) { var myList = new List(); for (var i = 0; i < count; i++) { myList .Add(new MyObj { bar = foo }); } return myList; } 我想知道是否有另一种方式,也许用LINQ来创建这个列表。 我试过了: private static IEnumerable CreatePaxPriceTypes(int count, string foo) { var myList = new List(count); return myList.Select(x => […]

将分隔转换为固定宽度的最佳方法

转换它的最佳方法是什么: FirstName,LastName,Title,BirthDate,HireDate,City,Region Nancy,Davolio,Sales Representative,1948-12-08,1992-05-01,Seattle,WA Andrew,Fuller,Vice President Sales,1952-02-19,1992-08-14,Tacoma,WA Janet,Leverling,Sales Representative,1963-08-30,1992-04-01,Kirkland,WA Margaret,Peacock,Sales Representative,1937-09-19,1993-05-03,Redmond,WA Steven,Buchanan,Sales Manager,1955-03-04,1993-10-17,London,NULL Michael,Suyama,Sales Representative,1963-07-02,1993-10-17,London,NULL Robert,King,Sales Representative,1960-05-29,1994-01-02,London,NULL Laura,Callahan,Inside Sales Coordinator,1958-01-09,1994-03-05,Seattle,WA Anne,Dodsworth,Sales Representative,1966-01-27,1994-11-15,London,NULL 对此: FirstName LastName Title BirthDate HireDate City Region ———- ——————– —————————— ———– ———- ————— ————— Nancy Davolio Sales Representative 1948-12-08 1992-05-01 Seattle WA Andrew Fuller Vice President, Sales 1952-02-19 1992-08-14 Tacoma WA Janet […]