【c#-在LINQ JOIN中添加第二个条件】教程文章相关的互联网学习教程文章

c#-System.Linq.Expressions:在运行时绑定LambdaExpression输入【代码】

请考虑以下设置:class A { public int x; } class B { public int y; }static class Helper {public static Expression<Func<B>> BindInput(Expression<Func<A, B>> expression,A input){//TODO} }static void Main(string[] args) {Expression<Func<B>> e = Helper.BindInput((A a) => new B { y = a.x + 3 },new A { x = 4 });Func<B> f = e.Compile();Debug.Assert(f().y == 7); }我想在BindInput方法中执行的操作是将表达式转...

c#-Linq查询以从两个表中获取不同的记录【代码】

我有两个表-tblExpenses和tblCategories如下 tblExpensesID (PK), Place, DateSpent, CategoryID (FK)tbl类别ID (PK), Name我尝试了各种LINQ方法从上述两个表中获取所有不同的记录,但是收效甚微.我尝试使用UNION和DISTINCT,但是没有用. 上面的两个表是在项目的“模型”部分中定义的,该表又将在SQLite中创建表.我需要从两个表中检索所有不同的记录以在gridview中显示值. 请为我提供一些完成任务的建议.我做了一些研究来找到这个问题...

c#-将LINQ到实体查询合并为单个查询【代码】

我有一个Entity Framework实体提供程序,其中包含该提供程序的评分投票列表.我当前的查询如下所示:int previousVote = provider.ProviderRankings.FirstOrDefault(r => r.UserId == CurrUserId); double averageVote = provider.ProviderRankings.Average(r => r.Rating); int totalVotes = provider.ProviderRankings.Count();这在功能上似乎是正确的.但是,我相信这将导致数据库的三个额外行程.无论如何,是否要将这些请求组合到一...

C#-LINQ-两种查询之间的性能【代码】

我必须创建一个连接3 IEnumerable(2个数据表,一个列表)的LINQ查询.我还必须“外部加入”我的2个加入. 我真的很喜欢第二个,因为它更易读并且可与SQL媲美.但是与第一个相比,我遇到了性能问题(长3倍),可读性较差,但速度更快. 有人可以向我解释如何优化第二个查询,以及为什么它们有很大不同,但是返回相同的数据(我对LINQ陌生,并且很难理解每个LINQ-TO-SQL / LAMBDA / SAMBA实用程序 旧的,真的很快,但是不太容易听var Detailled_payroll...

C#-Linq查询联接不起作用【代码】

嗨,我正试图在C#中加入两个表.连接代码如下.问题在于,当tb_abc中的Tourid为空值时,in将不会在列表中包含tb_abc中的该行.return (from p in context.tb_abcfrom o in context.tb_Secondwhere o.id==p.tourIdwhere p.driverId == driverIdselect new abcBean{id=p.id,name=o.name}).ToList<abcBean>();谁能告诉我我在做什么错解决方法:您没有在该查询中进行内部联接.您正在执行交叉联接,在该联接中您有两个表,并将每个记录连接到其他...

使用linq C#在另一个数组中查找并计数【代码】

我有以下情况: 我从数据源获取记录的集合并将其添加到列表中List<Entity> e = new List<Entity>(); foreach (var elm in datasource) {e.Add(new Entity { First = elm.First, Second = elm.Second, Third = elm.Third }); }这给了我类似的东西:// -> First = John, Second = Sally, Third = Ingrid // -> First = Sally, Second = Ingrid, Third = James // -> First = Ingrid, Second = Sally, Third = James我在List中有一个可...

C#-Linq-从n个列表中返回常见项目【代码】

我正在为我们的Intranet应用程序编写一个简单的搜索页面.当用户搜索n个单词时,我会创建n个命中列表,然后仅返回所有列表共有的结果. 我使用List< int>可以正常工作从而:var list1 = new List<int> {1,2,3,4,5,8,10}; var list2 = new List<int> {3,5,6,9,10,11}; var list3 = new List<int> {3,4,5,10};var listOfLists = new List<List<int>>{list1,list2,list3};var results = listOfLists.Aggregate((prevList, nextList) => pr...

c#-在where子句中组合两个LINQ条件【代码】

我有一个查询如下的集合.this.Collection.AsQueryable().Where(x => x.FirstName = "FirstName" && x => x.LastName= "LastName");现在基于布尔值,我想添加另一个&& where子句的条件. 我将如何去做?我尝试了以下.var firstExpr = x => x.FirstName = "FirstName" && x => x.LastName= "LastName"; var newExpr = firstExpr; if (includeAge) {Expression<Func<T, bool>> ageExpr = x => x.Age == 21;var combined = Expression.An...

无需使用LINQ和EF从ASP.NET切换到ASP MVC

不幸的是,这是一个比我真正想问的问题还要广泛的问题,但是我在网上找不到能很好解决这个问题的东西.我的问题是我们使用的Informix版本是10.5.直到Informix 11.10才添加LINQ和EF兼容性.由于使用的是旧版软件,我们目前无法升级我们的Informix版本. 考虑到这一点,MVC仍然是可用的方法吗?我浏览过的文档,问题和书籍都非常紧密地将EF和LINQ与MVC集成在一起.如果MVC在没有这两个组成部分的情况下是可用的和可取的,那么在缺少处理这两个应...

C#-使用linq反转输入文件中的文本【代码】

我想使用c#和linq反转input.txt中的每个单词并显示输出文本,到目前为止,我有一个输入单词并将其反转的代码.using System; using System.Text; using System.Linq; namespace program {class Program{public static void Main(string[] args){Console.WriteLine("String:");string name = Console.ReadLine();string output = new string(name.ToCharArray().Reverse().ToArray());Console.WriteLine(output);}} }解决方法: string ...

c#-使用linq和lambda进行分组和展平【代码】

我有以下课程public class SolicitacaoConhecimentoTransporte {public long ID { get; set; }public string CodigoOriginal { get; set; }public DateTime Data { get; set; }public List<CaixaConhecimentoTransporte> Caixas { get; set; } }我想知道是否有一种方法可以使用Linq(具有lambda表达式语法)实现以下代码的相同行为,List<SolicitacaoConhecimentoTransporte> auxList = new List<SolicitacaoConhecimentoTransporte>(...

c#-获取LINQ之前和之后的x个元素的子集【代码】

我有一个列表,我需要它的一个子集,该子集具有当前for循环中的5个先前元素和之后的5个元素,因此总共有10个元素的列表.忽略循环中的当前项目. 我目前正在实现以下目标:var currentIndex = myList.ClassName.FindIndex(a => a.Id == plate.Id); var fromIndex = currentIndex - 5; if (fromIndex < 0) fromIndex = 0; var toIndex = currentIndex + 5; if ((myList.ClassName.ElementAtOrDefault(toIndex) == null))toIndex = myList...

c#-通过反射通过自定义属性对实体进行Linq排序【代码】

获得了具有Country属性和String属性Name的Customer类.客户还实现IComparable< Country>.像这样:public int CompareTo(Country other) {return string.Compare(this.Name, other.Name); }现在:var custList = new List<Customer>{...};custList.OrderBy(cust => cust.Country).ToList(); //Sorts as charm.如果尝试通过反射排序:var itemProp = typeof(Customer).GetProperty("Country");custList = c.Customers.ToList().OrderB...

c#-使用Linq反向分页【代码】

我有一种情况,我必须使用LINQ以相反的方式获取分页记录.假设我有15项按照发布的顺序排列:1, 2, 3, 4, 5.......... 15如果用户在我的方法中发送1作为currentPage,则页面大小为5.然后我应该能够返回11、12、13、14、15作为结果集,如果他发送2作为currentPage,那么我应该返回6、7、8、9、10,依此类推.如何设置我给Skip方法的值,以便它以这种方式给我记录?是的,我也按日期从小到大排序.解决方法:只是逻辑的一个简单示例:var nums = ...

c#-通过其他条件更改LINQ中的条件【代码】

我有两条LINQ线,它们仅在一种情况下不同. node.Image.Tag == null和node.Image.Tag!= nullif (treeSelectedNode.Image.Tag == null) {radNode = tree.Find(node => node.Level == 0 && node.Image.Tag == null && node.Text.Equals(treeSelectedNode.Text));} else {radNode = tree.Find(node => node.Level == 0 && node.Image.Tag != null && node.Text.Equals(treeSelectedNode.Text));}有什么方法可以在LINQ行之前创建条件然后...