如何使用linq在列表中迭代以查找名称和值
本文关键字:查找 迭代 linq 何使用 列表 | 更新日期: 2023-09-27 18:01:02
我正在用.net开发一个MVC项目
{
credit_id: "57214f73c3a3681e800005f4",
department: "Production",
id: 84493,
job: "Casting",
name: "Mickie McGowan",
profile_path: "/k7TjJBfINsg8vLQxJwos6XObAD6.jpg"
},
{
credit_id: "572294979251413eac0007e2",
department: "Art",
id: 7927,
job: "Art Direction",
name: "Ricky Nierva",
profile_path: null
},
{
credit_id: "572297cdc3a3682d240008f9",
department: "Visual Effects",
id: 7894,
job: "Visual Effects",
name: "Jean-Claude Kalache",
profile_path: null
},
我把杰森放在一个名为"导演数据组"的列表中。我必须找到他们的部门"导演"的名字,并把他们添加到导演列表中。如何使用LINQ?
像这个
var directorsData = (tmdbMovie)JsonConvert.DeserializeObject<tmdbMovie>(findDirectors);
List<string> directors = new List<string>();
if (directorsData != null)
{
if (directorsData.crew.Count != 0)
{
foreach (var item in directorsData.crew)
{
var name = directorsData.crew. ===?
directors.Add(name);
}
}
}
使用Linq可以将所有名称作为列表,哪个部门是Directing
var nameList = directorsData.crew.Where(a =>a.department == "Directing")
.Select(a => a.name).ToList();
此外,您还可以在反序列化中删除类型强制转换
var directorsData = JsonConvert.DeserializeObject<tmdbMovie>(findDirectors);
这将返回部门等于"Directing"的tmdbMovie
类的集合。
var directingCollection = directorsData.crew.Where(x => x.Department.Equals("Directing"));
如果您只想要字符串集合中的名称,可以执行以下操作:
var nameCollection = directorsData.crew.Where(x => x.Department.Equals("Directing"))
.Select(x => x.Name).ToList();
如果您想循环浏览所有名称,可以执行以下操作:
nameCollection.ForEach(x =>
{
//X will be the string value of the name
//Your code here
});