从另一个列表中设置一个列表的特定值

时间:2016-07-14 19:27:06

标签: c# asp.net .net asp.net-mvc linq

我有以下强数据类型的两个列表(listA和listB):

   public class TagPresenter
    {    
        public string TagName { get; set; }
        bool IsEnable { get; set; }     
        public string TagId { get; set; }
    }

我需要在ListA中找到listB的项目时将ListA的IsEnable设置为true。这种比较应该发生在TagId上。 A具有B所具有的所有项目。所以简而言之,如果B有3个项目而A有10个,那么在这种情况下我需要在ListA中将所有这3个项目的IsEnable属性设置为true。我需要在LINQ.Kindly帮助中这样做。

3 个答案:

答案 0 :(得分:3)

在Linq中更新非常混乱 - 使用Linq查找匹配项但使用Patient.first.hospital.appointments

更新它们更为惯用
foreach

答案 1 :(得分:1)

这是我的第一篇文章,所以如果我犯了一个错误,我很抱歉,对不起我的英语。

下面的代码是使用Linq更新已经加载到内存中的列表的属性:

添加Class =>

   public static class LINQToObjectExtensions
    {
        public static void UpdateAll<T>(this IEnumerable<T> source, Action<T> action)
        {
            foreach (var item in source)
                action(item);
        }
    }

后:

ListA.UpdateAll(p => p.Property = Value);

ListA.Where(p => p.Id = 1).UpdateAll(p => p.Property = Value);

答案 2 :(得分:0)

试试这个

var query =
    from a in listA
    join b in listB on a.TagId equals b.TagId
    select new TagPresenter
    {    
       TagName = a.TagName,
       IsEnable = true,
       TagId = a.TagId
    };