[英]C# convert IEnumerable<List<string>> to a single string
我有一個 Web API 它返回以下數據:
{
"code": "Invalid",
"message": "The following fields are invalid",
"details": [
{
"property": "User",
"messages": [
"FirstName is required",
"LastName is required",
]
},
{
"property": "User.Gender",
"messages": [
"Incorrect or Invalid"
]
},
{
"property": "MarialStatus",
"messages": [
"Cannot be validated"
]
},
{
"property": "EmployeeId",
"messages": [
"User's employeeId is required"
]
},
}
這是我的 model object:
public class WebApiResponse
{
public string code { get; set; }
public string message { get; set; }
public List<Details> details { get; set; }
}
public class Details
{
public string property{ get; set; }
public List<string> messages { get; set; }
}
我想僅將所選“屬性”的“消息”顯示為由新行分隔的單個字符串,因此我可以將字符串添加到 DataTable 行。
例如:我試過這個來獲取“消息”列表
var data = WebApiResponse.details.Where(x => x.property == "User" || x.property == "EmployeeId").Select(x => x.messages);
如何轉換此列表,以便我可以在由換行符分隔的單個字符串中獲取“消息”:
FirstName is required
LastName is required
User's employeeId is required
使用SelectMany代替Select
來展平嵌套列表,然后使用 String.Join來連接字符串:
var targets = new[]{"User", "EmployeeId"];
var messages = WebApiResponse.details
.Where(x => targets.Contains(x.property))
.SelectMany(x => x.messages);
var line = string.Join(Environment.NewLine, messages);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.