2016-11-05 1 views
1

J'ai une liste dans Cassandra DB. J'utilise le code suivant pour aller les chercher,Cassandra List Data Type C# Obtenir le dernier élément

string query = "select name from table where userid = 'abcd' ;"; 
      try 
      { 
       Connector connector = new Connector(); 
       session = connector.Connect(); 
       RowSet rows = session.Execute(query); 
       if (rows.Columns.Length > 0) 
       { 
        foreach (Row row in rows) 
        { 
         data = row["name"].ToString(); 
        } 
        status = true; 
       } 
      } 
      else 
      { 
       // no rows 
      } 
      session.Cluster.Shutdown(); 
     } 
     catch (Exception ex) 
     { 

     } 

Je dois convertir cet objet de la liste qui est à chaîne convertissait dès maintenant aux tableaux pour que je puisse aller chercher la dernière chaîne au besoin.

Y at-il une méthode intégrée pour faire de même?

+0

où se trouve l'objet de la liste? –

+0

Voulez-vous ça? rows [rows.Length -1] ["name"]. ToString()? –

+0

Voulait également convertir en objet. Je l'ai fait –

Répondre

0

J'ai utilisé le code suivant à la fin

   foreach (Row row in rows) 
      { 

       object a = row["name"]; 
       string[] arr = ((IEnumerable)a).Cast<object>() 
           .Select(x => x.ToString()) 
           .ToArray(); 
       int ab = arr.Length; 
      /*for all items*/ 
       for(int i=0; i<ab;i++) 
       { 
        ltr.AppendText(arr[i]+","+i+" | "); 
       } 
/*for only last item*/ 
      string lastItem = arraystring[length - 1]; 

      } 

de nombreuses réponses combinées et ont fait cela et ça marche pour moi. laissez-moi savoir s'il y a un jeu avec la méthode Enumerable.

0

Vous pouvez récupérer un Cassandra list<string> dans un .NET List<T> en utilisant la méthode Row.GetValue<T>():

var list = row.GetValue<List<string>>("name"); 
string lastValue = list[list.Count - 1]; 
+0

Possible, mais ne l'ai pas essayé. Je suis heureux avec la réponse que j'ai posté car il peut donner n'importe quel élément nécessaire. –