Mám řetězec:
private const string Codes = "2,10";
public void method()
{
var displayCodes = Codes.Split(',');
DemoResponse response = webService.GetResponse(); //getting response from API
if(response.Errors.Any(x => displayCodes.Contains(x.StackTrace))
{
int myCode = int.Parse(response.Errors.Select(x => x.StackTrace).FirstOrDefault());
}
}
To je "DemoResponse" modelu:
public class DemoResponse
{
public bool Validate { get; set; }
public IEnumerable<ErrorResponse> Errors { get; set; }
}
public class ErrorResponse
{
public string Message { get; set; }
public string StackTrace { get; set; }
}
Na DemoResponse "odpověď" z API vrátí výsledek jako: (například)
{
"Validate" : false,
"Errors" :
{
"Message" : "test1",
"StackTrace" : "2"
}
}
{
"Validate" : false,
"Errors" :
{
"Message" : "test1",
"StackTrace" : "2"
}
}
{
"Validate" : false,
"Errors" :
{
"Message" : "test1",
"StackTrace" : "95"
}
}
Na DemoResponse "odpověď" bude vždy obsahovat pouze jeden kód z const string "Kódy", jsem.e buď 2 nebo 10. Ale může obsahovat další kódy.
Pokud DemoResponse "odpověď" obsahuje kód 2 jako první Kód, pak tato linka funguje:
int myCode = int.Parse(response.Errors.Select(x => x.StackTrace).FirstOrDefault());
Ale pokud DemoResponse "odpověď" nemá kód 2 jako první, a pak, jak to mám napsat LINQ vyberte Kód 2 a přiřadit k "myCode" proměnné? Například:
"StackTrace" : "95",
"StackTrace" : "95",
"StackTrace" : "2"
int myCode = int.Parse(response.Errors .Where(x => displayCodes.Contains(x.StackTrace)).Select(x => x.StackTrace).FirstOrDefault());