C# 基于条件更新c中的对象

C# 基于条件更新c中的对象,c#,C#,我这里有一个物体: public class ServiceConfig { public List<DatabaseDescriptor> Databases { get; set; } } public class DatabaseDescriptor { [XmlElement("Name")] public string Name { get; set; } public List<Table> Tables { get; s

我这里有一个物体:

public class ServiceConfig
{
    public List<DatabaseDescriptor> Databases { get; set; }  
}

public class DatabaseDescriptor
{
    [XmlElement("Name")]
    public string Name { get; set; }
    public List<Table> Tables { get; set; }        
}

public class Table
{  
    [XmlElement("ID")]
    public string ID { get; set; }
    [XmlElement("TableName")]
    public string TableName { get; set; }
}
在name==test的情况下,如何更新xmlData数据库描述符,即 我如何更新它

序列化回XML

XmlSerializer serializer = new XmlSerializer(typeof(xml.ServiceConfig));
            using (TextWriter writer = new StreamWriter(@"C:\Xml.xml"))
            {
                serializer.Serialize(writer, ServiceConfig);
            } 
尝试:

如果名称是唯一的

using System.Linq;


DatabaseDescriptor db = xmlData.Databases.SingleOrDefault(db => db.name == "test");
if (db != null)
{
                //Update db instance
}
否则

如果要在xml数据库属性中序列化/反序列化,必须用[XmlArray]修饰


你看

我不知道你在用什么库。源代码顶部的使用声明是什么?@SHiNKiROU我只是在序列化后获取数据,需要修改XMLDataDescriptor是否要找到Name==Test and updates的实例DatabaseDescriptor?我明白了吗?所以您正在研究如何修改对象并将XML数据写回文件?到目前为止,您尝试了什么?@Fabio,是的,就是这样..谢谢,这看起来不错:请您告诉我如何将我的ServiceConfig序列化回xml文件?我正在使用xml编写器,但可能我的cod eis不正确,请查看我的editWhat不正确?列表没有序列化?
DatabaseDescriptor updateObject = xmlData.Databases.FirstOrDefault(_d => _d.Name.Equals("Test"));
if(updateObject != null)
{
    // update what you want to update...
}
using System.Linq;


DatabaseDescriptor db = xmlData.Databases.SingleOrDefault(db => db.name == "test");
if (db != null)
{
                //Update db instance
}
    var dbs = xmlData.Databases.Where(db => db.name == "test");

    foreach (DatabaseDescriptor element in dbs)
    {
        // Update elements
    }