簡體   English   中英

比較多個 object 列表中的字符串

[英]compare string in multiple object list

我是新編程,如果我的問題沒有正確提出,請原諒

所以我有一個返回的 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; }
    }
}

我需要一個 function 來查看所有多個public string Companies{ get; set; } public string Companies{ get; set; } public string Companies{ get; set; }在第二次 API 調用中,然后僅輸出包含類似於public string Company { get; set; } public string Company { get; set; } 在第一個public string Company { get; set; }調用中。

您需要將字符串解析為列表並比較字符串

假設您將第一個 Api 調用的結果存儲在ProjectMinInfo projectMinInfo中,並將結果或第二個 Api 存儲在List<ResourcesAvailable> resourcesAvailableList中,現在您需要獲取 ZA62666ZF63131ADCB499

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

*我不確定我是否正確理解了您的問題。

好吧,這就是我所理解的:您有一個擁有公司的ProjectMinInfo實例。 此外,您有一個ResourcesAvailable實例的集合,其中每個實例都有一些公司,用逗號和空格“,”分隔,例如Company1, Company2, Company3

您想提取包含ProjectMinInfo實例指定的公司的ResourcesAvailable實例,對嗎?

如果是這樣,這是 LINQ 查詢:說projectProjectMinInfo類型的實例,資源 - ResourcesAvailable的列表。

// If you want the first resource that matches your condition
var matchingResource = resources
   .FirstOrDefault(q => q.Companies.Split(", ").Contains(project.Company));

// If you want all of the resources that match your condition
var matchingResources = resources
   .Where(q => q.Companies.Split(", ").Contains(project.Company))
   .ToList();

如果這不是您要查找的內容,請隨時添加說明^^


哦,我看到這個問題在一月份被問到了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM