首页 > 解决方案 > 比较多个对象列表中的字符串

问题描述

我是新编程,如果我的问题没有正确提出,请原谅

所以我有一个返回的 API 调用

public class ProjectMinInfo
 {
        public string ProjectId { get; set; }
        public string Name { get; set; }
        public string Company { get; set; }
        public class ProjectMinInfos
        {
            [JsonProperty("@odata.context")]
            public string OdataContext { get; set; }
            public List<ProjectMinInfo> value { get; set; }
        }
}

我有另一个 Api 调用返回多个结果

public class ResourcesAvailable
{
    public string ResourceId { get; set; }
    public string Description { get; set; }
    public string ResourceType { get; set; }
    public int ResourceSeq { get; set; }
    public string Companies { get; set; } //note this string could contain more than 1 value i.e "1","5"
    public class ResourcesAvailables
    {
        [JsonProperty("@odata.context")]
        public string OdataContext { get; set; }
        public List<ResourcesAvailable> value { get; set; }
    }
}

我需要一个函数来查看public string Companies{ get; set; }第二个 API 调用中的所有倍数,然后只输出包含类似于public string Company { get; set; }第一个 API 调用中的字符串值的结果。

标签: c#

解决方案


您需要将字符串解析为列表并比较字符串

假设您存储了第一个 Api 调用ProjectMinInfo projectMinInfo的结果和结果或第二个 ApiList<ResourcesAvailable> resourcesAvailableList现在您需要获取对象

ResourcesAvailable matchingResource = resourcesAvailableList.Where(x => x.Companies.Split(',').Contains(projectMinInfo.Company)).FirstOrDefault();
   

推荐阅读