相关疑难解决方法(0)

使用LINQ比较两个列表元素

我正在尝试找到一个LINQ表达式来比较两个列表元素.

我想做的是:

List<int> _int = new List<int> { 1, 2, 3, 3, 4, 5};
_int.Where(x => x == _int[(_int.IndexOf(x)) + 1]);
Run Code Online (Sandbox Code Playgroud)

不幸的是,只有最后一个+1跳出列表的范围.

如何在LINQ表达式中将一个项目与列表中的下一个项目进行比较?

.net c# linq

5
推荐指数
1
解决办法
5894
查看次数

使用linq更新对象的性能更佳

我有两个自定义对象列表,如果另一个列表中的对象与另一对字段匹配,则希望为一个列表中的所有对象更新字段.

此代码更好地解释了问题,并产生了我想要的结果.但是对于较大的列表20k和具有匹配对象的20k列表,这需要相当长的时间(31秒).通过使用通用列表Find(Predicate)方法,我可以用~50%来改善这一点.

using System;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
namespace ExperimentFW3
{
    public class PropValue
    {
        public string Name;
        public decimal Val;
        public decimal Total;
    }
    public class Adjustment
    {
        public string PropName;
        public decimal AdjVal;
    }
    class Program
    {
        static List<PropValue> propList;
        static List<Adjustment> adjList;

        public static void Main()
        {
            propList = new List<PropValue>{
                new PropValue{Name = "Alfa", Val=2.1M},
                new PropValue{Name = "Beta", Val=1.0M},
                new PropValue{Name = "Gamma", Val=8.0M}
            };
            adjList = new List<Adjustment>{
                new Adjustment{PropName = "Alfa", …
Run Code Online (Sandbox Code Playgroud)

c# linq optimization performance linq-to-objects

2
推荐指数
1
解决办法
1343
查看次数

标签 统计

c# ×2

linq ×2

.net ×1

linq-to-objects ×1

optimization ×1

performance ×1