我必须使用C#从嵌套列表中删除一个项。这是我的清单:
{
"Name": "CC",
"Categories": [
{ "description": "Visaa", "payCode": "v" },
{ "description": "Master", "payCode": "m" }
]
},
{
"Name": "paypal",
"Categories": [
{ "description": "paypal", "payCode": "p" }
]
}
字符串
我想从CC类型中删除此类别列表:
{
"description": "Master",
"payCode": "m"
}
型
在那之后,我的列表应该看起来像这样:
{
"Name": "CC",
"Categories": [
{ "description": "Visaa", "payCode": "v" }
]
},
{
"Name": "paypal",
"Categories": [
{ "description": "paypal", "payCode": "p" }
]
}
型
我尝试了下面的方法,但不确定如何做到,以得到上面的列表
payments.Find(x => x.Name == "CreditCard").PaymentOptions;
型
3条答案
按热度按时间4c8rllxm1#
字符串
gz5pxeao2#
你需要从categories对象中删除元素,这里有一个例子...
字符串
ubbxdtey3#
LINQ语句只能查询数据,不能更改查询到的数据
如果要更改本地内存中的数据,必须获取数据的引用,然后枚举获取的引用以更改它。
如果数据在其他地方,例如在数据库中,则需要特殊的方法来更改数据。如果使用Entity Framework,则必须查询完整的项(=不使用Select),枚举获取的数据以更改数据,然后调用SaveChanges。
回到你的问题
当你使用
Find
时,我假设你使用的是类似Entity Framework的东西。你忘了给予我们上课。我认为你有类似于以下的类:
字符串
**要求:**给定PaymentMethods X和一个PaymentCategory Y的序列,给出所有PaymentMethods X的序列,属性Categories中不包含PaymentCategory Y。
不如这样:
型
换句话说:从paymentMethods序列中的每个paymentMethod中,创建一个新的paymentMethod,其中包含以下属性值:
*名称:使用paymentMethod的名称
*分类:从paymentMethod中的Categories序列中获取每个paymentCategory,这些类别的Name或Paycode与categoryToRemove中的Name / Paycode不同。把这个列个表。