C#修改列表指定項或指定元素的值


引言:當混子久了基礎也不會了哈哈,記性不好的我還是記錄下修改方式吧,不然想了一堆方法都沒達到目的

 

1、首先是修改符合條件的第一個元素的值(方式1為修改所有符合條件的元素)

/// <summary>
/// 示例:修改列表符合條件第一個元素的值
/// </summary>
/// <returns>返回示例結果</returns>
public string ModifyClass()
{
    string message1 = "修改前:(默認方式2不顯示修改前)";
    List<string> ExamleList = new List<string>()
    {
        "1", "2", "3"
    };
    #region  方式1
    //ExamleList.ForEach(t =>
    //{
    //    message1 += "\r\n" + t;
    //    if (t == "2") t = "222";
    //});
    #endregion
    #region  方式2
    int indexEX = ExamleList.IndexOf("2");
    ExamleList.RemoveRange(indexEX, 1);//ExamleList.Remove("2");
    ExamleList.Insert(indexEX, "222");
    #endregion
    message1 += "\r\n\r\n修改后:";
    ExamleList.ForEach(t =>
    {
        message1 += "\r\n" + t;
    });
    return message1;
}
View Code

 

2、接着是修改列表符合條件第一個單項的屬性

/// <summary>
/// 示例類
/// </summary>
public class ExamplesClass
{
    private int id;

    private string value1;

    public int ID
    {
        get { return id; }
        set { id = value; }
    }

    public string Value
    {
        get { return value1; }
        set { value1 = value; }
    }
}


/// <summary>
/// 示例:修改列表符合條件第一個單項的屬性
/// </summary>
/// <returns>返回示例結果</returns>
public string ModifyClass1()
{
    string message1 = "修改前:";
    List<ExamplesClass> EC = new List<ExamplesClass>()
    {
        new ExamplesClass(){ ID = 1, Value = "1"},
        new ExamplesClass(){ ID = 2, Value = "2"},
        new ExamplesClass(){ ID = 3, Value = "3"}, 
    };
    foreach (ExamplesClass ec in EC)  //遍歷修改前的列表
    {
        message1 += "\r\n" + ec.Value;
    }
    #region  更簡單的修改方式
    //EC.ForEach(t =>
    //{
    //    if (t.ID == 2)
    //        t.Value = "222";
    //});
    #endregion
    #region  醬紫很麻煩
    var modifyEC = EC.Where(t => t.ID == 2).ToList();  //獲取符合修改條件的項
    if (modifyEC.Count() != 0)  //獲取到修改項不為空
    {
        //modifyEC.FirstOrDefault().Value = "22";
        modifyEC[0].Value = "22";
    }
    else Thread.Sleep(1);
    #endregion
    message1 += "\r\n\r\n修改后:";
    EC.ForEach(t =>  //遍歷修改后的列表
    {
        message1 += "\r\n" + t.Value;
    });
    return message1;
}
View Code

 

3、再來是修改列表符合條件一個片段的屬性

/// <summary>
/// 示例類
/// </summary>
public class ExamplesClass
{
    private int id;

    private string value1;

    public int ID
    {
        get { return id; }
        set { id = value; }
    }

    public string Value
    {
        get { return value1; }
        set { value1 = value; }
    }
}


/// <summary>
/// 示例:修改列表符合條件一個片段的屬性
/// </summary>
/// <returns>返回示例結果</returns>
public string ModifyClass2()
{
    string message1 = "修改前:";
    List<ExamplesClass> EC = new List<ExamplesClass>()
    {
        new ExamplesClass(){ ID = 1, Value = "1"},
        new ExamplesClass(){ ID = 2, Value = "2"},
        new ExamplesClass(){ ID = 3, Value = "3"},
        new ExamplesClass(){ ID = 4, Value = "4"},
        new ExamplesClass(){ ID = 5, Value = "5"}
    };
    List<ExamplesClass> modifyEC = new List<ExamplesClass>()
    {
        new ExamplesClass(){ ID = 3, Value = "333"},
        new ExamplesClass(){ ID = 4, Value = "444"}
    };
    foreach (ExamplesClass ec in EC)  //遍歷修改前的列表
    {
        message1 += "\r\n" + ec.Value;
    }
    int modifyIndex = EC.IndexOf(EC.Where(t => t.ID == 3).ToList()[0]);  //從ID為3的位置開始修改2個項
    EC.RemoveRange(modifyIndex, 2);  //移除從指定開始的2個項
    EC.InsertRange(modifyIndex, modifyEC);  //從指定位置插入新的列表
    message1 += "\r\n\r\n修改后:";
    EC.ForEach(t =>  //遍歷修改后的列表
    {
        message1 += "\r\n" + t.Value;
    });
    return message1;
}
View Code

 

記下來就不怕忘了哈哈哈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM