【c# – 使用LINQ交叉两个列表】教程文章相关的互联网学习教程文章

首页> C#>如何分割属性与LINQ表达式【代码】

想象我有一个实体:MyEntity { ... Nullable<Int64> MyProperty ... }我想做这样的事情:Ctx.MyEntity.Where(x=>x.MyProperty/16 == 10) 与Linq.Expression 所以我创建一个参数:var param = Expression.parameter(typeOf(MyEntity));然后该属性:var prop = Expression.PropertyOrField(param,"MyProperty");如果我想比较10,我会做这样的事情:var cmp = Expression.equal(prop,Expression.constant(10,prop.Type));但首先我需要将...

c#-使用LINQ根据多个表中的多个属性有条件地对元素进行排序【代码】

最近,我需要对页面列表和导航菜单项进行排序,它们彼此关联. 每个导航都有一个Page属性.每个页面都有一个Navigation属性.它们是我数据库中的外键引用. 我有一个导航项目的列表以及每个页面项目的列表.问题在于,无论页面与导航相关联,它都存储在页面项列表中. 我想生成一个页面项的排序列表,如下所示:具有非空导航的项由Page.Navigation.Index属性排序.导航为空的项目按Page.Title属性排序,然后按Page.ID属性排序. 以下是我们目前正...

如何获得Linqpad intellisense以显示C#5.0方法?

我将Linqpad用作代码暂存器,以使用C#5.0异步功能.我的代码可以正常编译和执行,但是智能感知仅显示4.0框架中的元素. 例如,建议列表中没有Task.WaitAll(),但是没有Task.WhenAll()或Task.Delay(). 据乔阿尔巴哈里(Joe Albahari)说,智能感知应该与.Net 4.5一起使用,但是我无法使其运行. 我在运行Windows 7和Windows 8(RC&RTM)和VS 2012 Beta,RC和Final的不同组合的不同计算机上进行了尝试. 任何建议都欢迎.解决方法:Joseph Albahari能够...

如何使用C#将两个linq查询结果集合并为一个【代码】

我想将两个LINQ查询结果合并为一个:var query1 = from sn in code group sn by sn.Substring(0, 10) into gselect new{Key = g.Key,Cnt = g.Count(),Min = g.Min(v => v.Substring(10, 4)),Max = g.Max(v => v.Substring(10, 4))}; var query2 = from sn1 in codesgroup sn1 by sn1.Substring(0, 11) into gselect new{key = g.Key,Cnt = g.Count(),Min = g.Min(v => v.Substring(11, 4))...

C#-foreach循环在具有多个记录的Linq查询后仅返回第一条记录【代码】

我有一个对第三方提供的数据库运行的Linq2SQL查询.查询的主要部分如下所示:var valuationQuery =from v in context.Valuationswhere v.ModelId == QualifiedModelId.ModelId&& v.QualifyModelId == QualifiedModelId.Qualifier&& v.LanguageCode == QualifiedModelId.LanguageCode&& v.Edition == Data.Meta.Edition.CurrentEdition.Date&& v.RegDate == yearReg.RegistrationDate&& v.ValTypeDescription == "Normal"&& v.Mileag...

c#-groupby后的linq无法获取列值【代码】

我正在通过联接从多个表中获取数据,我想将特定列值上的数据分组,但是在按语句分组之后,我可以访问我的别名及其属性.我在犯什么错误?public List<PatientHistory> GetPatientHistory(long prid) {using(var db = new bc_limsEntities()){List<PatientHistory> result = (from r in db.dc_tresultjoin t in db.dc_tp_test on r.testid equals t.TestId into xfrom t in x.DefaultIfEmpty()join a in db.dc_tp_attributes on r.attri...

javascript-如何使用linqjs(或扁平化JSON)链接“ SelectMany”调用【代码】

如何使用linq.js将两个SelectMany调用链接在一起. 给定以下JSON结构:[{"UpFrontCost": "29.95","Currency": "USDAUD","FittingDate": "2013-07-08 06:30:16Z","Widgets": [{"ID": 3,"Name": "Test1"},{"ID": 4,"Name": "Test19"},{"ID": 6,"Name": "Test8"}]},{"UpFrontCost": "29.95","Currency": "USDAUD","FittingDate": "2013-07-08 06:30:16Z","Widgets": [{"ID": 67,"Name": "Test1"},{"ID": 99,"Name": "Test19"},{"ID": 3...

c#-在运行时使用Linq确定表【代码】

是否可以通过Linq确定要在运行时使用的表?还是我必须填写数据集?var results = from r in db.Table <-- change whenever I need to during runtimeselect r;如果不是,我想知道为什么,如果是,我想知道如何.一个工作示例将不胜感激.解决方法:我怀疑您正在寻找DataContext.GetTable(Type).您需要知道与表关联的实体类型,然后调用该方法. 显然,结果将不会被强类型化,但这将是正确的表. 如果您通常知道该类型(例如,您可以将其放入通用...

C#-Linq根据年份和类别选择产品计数【代码】

我正在尝试绘制如下的Google条形图 我有一些东西product { id, name, categoryid }category { id, categoryname }我尝试了类似的代码var grouped = (from c in allCategoriesfrom p in allProductsgroup p by new { year = p.CreateDate.Year} into dselect new { year = d.Key.year, count = d.Count()}).OrderByDescending(g => g.year).Distinct(); <script type="text/javascript">google.load("visualization", "1", { packag...

c#-使不透明的IEnumerable查询并行(PLINQ)【代码】

在一个函数中,我想对作为参数提供的IEnumerable进行并行处理. 这个IEnumerable已经是一些链接的结果,即:IEnumerable argument = InitialEnumerable.Select(x => DoHeavyProcessing(x))...但对我来说,它是不透明的-我无法修改此参数的创建方式.我不知道它是如何构造的. 现在,当我调用arguments.AsParallel()时,这样做没有好处-AsParallel()仅并行化其右侧的处理,但是之前的所有工作都按顺序运行. 相反,我需要以某种方式解析此IEnum...

c#-在Linq中获取字符值到实体【代码】

我有一个表Assessment,其中(其中包括)两列CurrentGrade和PreviousGrade,它们都定义为char(1).等级是从A到Z的符号. 现在,我想编写一个查询来获取评估中所有记录的当前成绩和上一个成绩之间的差异,以数字表示,例如如果previous是A,current是D,则差为3. 我会做这样的事情:var q = db.Assessments.Select(a => new { a.ID, Diff = a.CurrentGrade[0] - a.PreviousGrade[0] });…但这不起作用,因为String.getChars没有SQL转换. 而且我不...

C#-结合linq foreach【代码】

如何将以下代码更改为一个LINQ查询:var items = (from s in db.WfRADocStates.Include(x => x.WfStateStatu).Include(xx => xx.WfState).Include(xxx => xxx.WfState.Dept).Include(d => d.RADoc)where s.RADocID == docID&& !s.isHistory&& s.StatusID == 1&& s.WfStateStatu.isToNotifyselect s).ToList();foreach (var item in items) {EmailHelper.notify(item); }解决方法:在LINQ中使用.ForEach:(from s in db.WfRADocState...

C#-Linq然后无限期运行【代码】

我有一个函数,它的作用仅仅是以一种易于理解的方式打印出频繁出现的项目集的字典.目标是首先按字典键的大小排序,然后按数字列表的字典顺序排序.该问题出现在ThenBy语句中,因为注释掉的“ hello”将无限期打印.如果我将ThenBy更改为不使用比较器,而仅使用另一个int或字符串值,则它可以正常工作,因此我显然做错了什么.public static void printItemSets(Dictionary<List<int>, int> freqItemSet) {List<KeyValuePair<List<int>, int>...

c#-简单的LINQ选择(使用实体框架)不返回值【代码】

我是C#和Entity Framework的新手.我的LINQ选择从不从实体编辑器返回任何值.我有一个名为Editor的表,其中包含以下数据:Editor --------------------------------- Id | Name | Email 1 | Oreilly | oreilly@email.com 2 | Apress | apress@email.com 3 | Abril | abril@email.com 4 | Europa | europa@email.com我的Web.Config上的连接字符串为:<connectionStrings><add name="EditoraContext" providerName="Sy...

c#-比较两个枚举值的Linq表达式【代码】

我正在我的应用程序中进行一些表情表达,大部分时间都在工作.但是,当我尝试对一个枚举值进行比较运算时,我遇到了麻烦.例如:expr = Expression.GreaterThanOrEqual(memberExpression, constExpression);直到memberExpression和constExpression为MyEnum类型时,此方法才能正常工作.这会引发运行时错误:The binary operator GreaterThanOrEqual is not defined for the types ‘MyNamespace.MyEnum’ and ‘MyNamespace.MyEnum’.我可...