2017-02-27 3 views
0

enter image description herewie greife ich auf der Klassenliste Wert

Ich habe eine Klasse, die von einem Rest-Server, ohne ein Problem auffüllt und es bindet

die Klasse

namespace SavRMobile.AccessToken 
{ 

    public class AccessTokenModel 
    { 
     public User user { get; set; } 
    } 

    public class User 
    { 
     public Accesstoken[] accessTokens { get; set;} 
    } 

    public class Accesstoken 
    { 
     public string appId { get; set; } 
     public string value { get; set; } 
    } 


} 

es wird immer nur sei 1 Token, den ich abrufen muss. Ich weiß nicht, warum die Entwickler es in eine Liste geschafft haben? Wie auch immer, ich möchte auf die accesstoken.value -Eigenschaft zugreifen .. es wird als Array zurückgegeben .. Ich kann nicht scheinen, um den Wert auch in einem foreach erhalten es wird mich nicht lassen. oder sollte ich grade grad den Index von [0] aber nicht sicher was der Ansatz ist?

+0

, wie Sie diese foreach tun? Es sollte kein Problem beim Zugriff auf diese Eigenschaft geben. –

+0

receivedAccessToken.User.Accesstoken [0] .value? –

+0

'ReceivedAccessToken.User.accessTokens [0] .value' –

Antwort

1

Sie können wie folgt versuchen:

AccessTokenModel receivedAccessTokens = new AccessTokenModel(); 
if (receivedAccessTokens.user.accessTokens.Length > 0) 
{ 
    string appID = receivedAccessTokens.user.accessTokens[0].appId; 
    string value = receivedAccessTokens.user.accessTokens[0].value; 
} 

In der Definition der Klasse accessTokens ist definiert als ein Array von Accesstoken so muss man ihre Werte zugreifen, basierend auf dem Index. Es ist immer besser, nach der Anzahl der Array-Länge/Elemente zu suchen, bevor Sie auf einen Wert zugreifen, der auf dem Index basiert. so oben Code wird das überprüfen sowie die Werte für appId und Wert abrufen.

+0

Danke, dass Ihre Lösung für mich arbeitete. addieren Sie die zusätzlichen Daten von appid, Wert bis zum Ende der Formel war alles, was fehlte und auch die Länge zu überprüfen, bevor Sie dies tun .. Vielen Dank für alle Antworten –

1

Sie können es so nennen:

if(RecievedAccessToken.User.accessTokens.Length > 0) 
{ 
    ReceivedAccessToken.User.accessTokens[0].value; 
} 

Hoffe, es hilft!

+0

Sie sollten überprüfen ReceivedAccessTokens.User.accessTakens Länge –

+0

ReceivedAccessTokens existiert nicht im aktuellen Kontext? ist mein Fehler von dieser Lösung –

0

Get spesific Wert Index

if(recievedAccessToken.User.Accesstoken.Length > 0) 
    { 
    recievedAccessToken.User.Accesstoken[0].value 
    } 

oder

//Check `length` 
    AccessTokenModel tokens = recievedAccessToken.User.Accesstoken[0]; 

Return Ergebnisliste

AccessTokenModel receivedAccessTokens = new AccessTokenModel(); 

foreach (AccessTokenModel act in recievedAccessToken) 
{ 
    receivedAccessTokens.Add(act); 
} 
Verwandte Themen