Tag: linq

按另一个列表C#过滤列表

我有以下业务对象: public class ItemCategoryBO { public string ItemCategory { get; set; } public string Title { get; set; } } public class ItemBO { public int ItemId { get; set; } public string Title { get; set; } public string ItemCategory { get; set; } } List categoryList = new List(); ItemCategoryBO itemCategory = new […]

NHibernate或LINQ to SQL

如果开始一个新项目,你将使用什么ORM NHibernate或LINQ以及为什么。 每种方法的优缺点是什么? 编辑:LINQ to SQL不只是LINQ(感谢@Jon Limjap)

使用LINQ进行“智能”分组

我有一个字符串列表,我想将其转换为某种分组列表,其中值将按列表中的位置进行分组(不是正常分组,但在某种程度上,相同的项目只在一个组中如果他们在一起)。 请考虑以下示例: LinkedList myList = new LinkedList(); myList.AddLast(“aaa”); myList.AddLast(“aaa”); myList.AddLast(“bbb”); myList.AddLast(“bbb”); myList.AddLast(“aaa”); myList.AddLast(“aaa”); myList.AddLast(“aaa”); LinkedList groupedList = new LinkedList(); groupedList.AddLast(new MyTuple(“aaa”, 2)); groupedList.AddLast(new MyTuple(“bbb”, 2)); groupedList.AddLast(new MyTuple(“aaa”, 3)); 这个转换可以用LINQ完成,还是应该用循环编写算法?

LINQ等于而不是包含

我需要使用equal而不是Contains。 我有一个名为selectedDeviceTypeIDs的代码数组我假设它有两个代码{1,2} 如果设备ID完全是{1,2},我需要从查询中获取结果,所以我用selectedDeviceTypeIDs.equal或类似的东西替换selectedDeviceTypeIDs.Contains … m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID) if (DeviceTypeIDs != null) { Guid[] selectedDeviceTypeIDs = DeviceTypeIDs.Split(‘,’).Select(Guid.Parse).ToArray(); query = query.Where(j => j.HospitalDepartments.Any(jj => jj.Units.Any(m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID))))); }

比较两个excel文件的差异

我想比较两个输入csv文件,看看是否有添加或删除的行。 什么是最好的方法来解决这个问题。 我没有使用列名,因为列的名称对于所有文件都不一致。 private void compare_btn_Click(object sender, EventArgs e) { string firstFile = firstExcel_txt.Text; var results = ReadExcel(openFileDialog1); string secondFile = secondExcel_txt.Text; var results2 = ReadExcel(openFileDialog2); } 读: public object ReadExcel(OpenFileDialog openFileDialog) { var _excelFile = new ExcelQueryFactory(openFileDialog.FileName); var _info = from c in _excelFile.WorksheetNoHeader() select c; string header1, header2, header3; foreach (var item in […]

Distinct()如何运作?

让我说我有这个: class Foo { public Guid id; public string description; } var list = new List(); list.Add(new Foo() { id = Guid.Empty, description = “empty” }); list.Add(new Foo() { id = Guid.Empty, description = “empty” }); list.Add(new Foo() { id = Guid.NewGuid(), description = “notempty” }); list.Add(new Foo() { id = Guid.NewGuid(), description = “notempty2” […]

为每个ID选择具有最大日期的值

这是表“历史” id value date 1 1 01/01/2017 20:20:20 1 2 02/01/2017 20:20:20 1 3 03/01/2017 20:20:20 2 5 01/01/2017 20:20:20 2 6 02/01/2017 20:20:20 如何使用linq为每个id选择最大值 context.History .GroupBy(x => x.id) ?? .SelectOnlyWithMax(z => z.date) ?? 结果只有两个对象 id value date 1 3 03/01/2017 20:20:20 2 6 02/01/2017 20:20:20

根据FK表中的记录返回列

我有一个显示供应商的成功查询,但我现在想要添加的是显示已选择或未选择哪些供应商的列(显示为复选框列)。 这些选择存储在VendorsSelected表中,该表包含选择它们的FK ProfileID和UserName。 因此,当当前用户查看供应商时,某些供应商将匹配,而其他供应商则不会。 如何修改查询? 请注意,下面的Where子句将完成仅获取当前用户选择的供应商,但我想要的是所有供应商显示的是他们选择的每个供应商的true / false(复选框)列。 public IEnumerable BrowseVendors() { IQueryable viewModel = _db.VendorProfiles .Include(“VendorsSelected”) .Select(s => new BrowseVendorModel { ProfileID = s.ProfileID, Name = s.Name, CompanyName = s.CompanyName, City = s.City, State = s.State, DateCreated = s.DateCreated }) .Where(x => x.VendorsSelected.Select(s => s.UserName).Contains(HttpContext.Current.User.Identity.Name)) .OrderBy(v => v.ProfileID); return viewModel; }

实体或复杂类型…不能在LINQ to Entities查询中构造

为什么一个方法可以工作而另一个方法不工作,因为它们似乎都在做同样的事情,即构建一个实体。 那么我的问题是,有没有办法在L2E查询中构造实体,而不是只使用Linq或两者兼而有之? 这很好…… var queryToList = (from ac in ctx.AuthorisationChecks where wedNumbers.Contains(ac.WedNo) orderby ac.WedNo, ac.ExpAuthDate, ac.ActAuthDate select new AuthorisationCheck { Blah = ac.Blah }).ToList(); model.AuthorisationChecks = queryToList.Select(x => new AuthorisationCheck { Blah = x.Blah }).ToList(); 但是,如果我改变…… var queryToList 至 model.AuthorisationChecks queryToList // Of type List 我在标题中得到错误… The entity or complex type ‘Model.AuthorisationCheck’ cannot be constructed […]

c#中两个DataTable的区别

我有两个数据表如下 dtOne ————————- ID | Name ————————– 101 | ABC 102 | XYZ 103 | MNO ————————– dtTwo ————————- ID | Name ————————– 101 | ABC 102 | XYZ ————————– 我只想将结果作为in dtOne数据而not in dtTwo (dtOne-dtTwo) dtResult ————————- ID | Name ————————– 103 | MNO ————————– 我怎样才能做到这一点。