首页 > 解决方案 > 从类对象列表中选择时设置属性值

问题描述

我试图在从列表中选择时设置值(日值到“星期日”),如下面的方法“getData”,有没有一种方法可以在不真正更改类对象属性“日”值的情况下设置它?我只想在阅读时将其设置为“星期日”,就像“星期日”一样“日”。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleAppForChecking
{
    public class test
    {
        public string firstName { get; set; }
        public string lastName { get; set; }
        public int age { get; set; }
        public string day { get; set; }
    }

    public class TestMain
    {
        static void Main(string[] args)
        {
            var tests = new List<test>()
            {
                new test { firstName = "Mike", lastName = "Toss", age = 20, day = "Monday" },
                new test { firstName = "Peter", lastName = "Page", age = 30, day = "Tuesday" },
                new test { firstName = "Stacy", lastName = "Page", age = 27, day = "Wednesday" }
            };

            getData(tests);
            GetDate(tests);
        }

        public static void getData(List<test> _data)
        {
            var _data1 = _data.Where(w => w.firstName == "Stacy")
                              .Select(o => new 
                                           { 
                                             o.firstName, 
                                             o.lastName, 
                                             day = o.day = "Sunday",
                                             o.age 
                                           })
                              .ToList();
            foreach(var d in _data1)
            {
                Console.WriteLine(d);
            }
        }

        public static void GetDate(List<test> _data1)
        {
            foreach (var d in _data1)
            {
                Console.WriteLine(d);
            }
        }
    }
}

标签: c#listlinq

解决方案


_data.Where(w => w.firstName == "Stacy")
                              .Select(o=> {o.day = "Sunday"; return c;})
                              .ToList();

推荐阅读