提问人:Mike Johnston 提问时间:11/2/2023 最后编辑:Mike Johnston 更新时间:11/2/2023 访问量:61
如何从强 c# 对象返回 list<string>,其中对象属性中的任何项都包含指定的字符串 [duplicate]
How do you return a list<string> from a strong c# object where any items in the object's property contains the specified string [duplicate]
问:
我有 2 个对象
public class Root
{
public Value value { get; set; }
}
public class Value
{
public List<string> names { get; set; }
}
我有一个json字符串
{
"value": {
"names": [
"MINChanges_231101123225.xls",
"MultiTierContractTemplate.xlsx"
]
}
}
我反序列化
Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonString);
我想返回一个列表字符串,其中任何名称都包含我指定的字符串
我知道如何使用 Contains 函数,如下所示,但是如何使用 Linq 向我返回一个新的列表字符串,其中任何名称都包含我指定的字符串
myDeserializedClass.value.names.Any(str => str.Contains(mySpecifiedString))
答:
0赞
Tim Schmelter
11/2/2023
#1
我想从downloadedFilesNames返回一个列表字符串,其中任何 downloadedFilesNames 中的项目包含我指定的字符串
如果你真的想要,你为什么要使用?你不想知道是否至少有一个匹配项,但你想找到它们,所以筛选列表:myDeserializedClass.value.names.Any
Where
List<string> filterFileNames = myDeserializedClass.value.names
.Where(fn => fn.Contains(mySpecifiedString))
.ToList();
评论
0赞
Mike Johnston
11/2/2023
是的,这奏效了。谢谢。但是,我更新了问题(删除了属性 downloadedFilesNames),因此您可能需要编辑答案以反映更改
0赞
Mike Johnston
11/2/2023
我将其标记为答案,但是,您仍然提到了 downloadedFilesNames。您可能应该删除这些提及
0赞
Tim Schmelter
11/2/2023
@MikeJohnston:你是对的,删除了它
下一个:如何修改linq排除部分记录?
评论
IEnumerable<dynamic>
List<string>
Any
.Any()
.Where()