簡體   English   中英

Linq C#:如果在字符串列表中,則從類對象列表中獲取值

[英]Linq C#: Get value from list of class objects if in list of strings

我一直在嘗試從字符串列表中不存在的對象列表中的對象列表中獲取第一個匹配值,但似乎無法找到正確的語法。

public class SO_Response
{
    private List<SalesOrderDto> _headers = new List<SalesOrderDto>();

    public List<SalesOrderDto> Header
    {
        get { return _headers; }
        set { _headers = value; }
    }
}
public class SalesOrderDto
{
    public SalesOrderDto(string order, string resultMessage)
    {
        Order = order;
        ResultMessage = resultMessage;
    }

    public string Order { get; }
    public string ResultMessage { get; }
}

在方法中使用:

     var result = new List<IRMS_SO_Response>();
    //result = .....

    var matches = new HashSet<string>() { "Good Record", "Order is canceled", "status = Cancelled" };

   --> Need Linq statement to get first value from result where header.ResultMessage not in matches.

我嘗試了很多變化,但從來沒有正確的。

   var returnMessage = (from x in result
                        where x.Header.FirstOrDefault(message => !message.ResultMessage.Contains(matches))

我不確定我是否完全理解您在尋找什么。 假設您正在尋找不在匹配集中的第一個 ResultMessage 值,我相信以下內容會滿足您的要求。

var firstNonMatch = result
    .SelectMany(t => t.Header.Select(h => h.ResultMessage)) // convert list of responses into list of nested headers
    .FirstOrDefault(t => !matches.Contains(t));             // pick the first header that doesn't match (or null if no match)

暫無
暫無

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

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