2016-11-05 86 views
1

我在Cassandra DB中有一個列表。 我使用下面的代碼來接他們,Cassandra列表數據類型C#獲取最後一個元素

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) 
     { 

     } 

我需要轉換其轉換爲字符串截至目前,以陣列,以便需要時我可以獲取最後一個字符串此列表對象。

是否有任何內置的方法來做同樣的事情?

+0

這裏是列表對象? –

+0

你想要這個嗎? rows [rows.Length -1] [「name」]。ToString()? –

+0

也想轉換爲對象。我做到了 –

回答

0

我用下面的代碼在最後

   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]; 

      } 

結合很多答案,這樣做,並且它爲我工作。讓我知道是否有任何使用Enumerable方法的玩法。

0

您可以檢索卡桑德拉list<string>到使用Row.GetValue<T>()方法的.NET List<T>

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

可能的,但沒有嘗試過。我很滿意我發佈的答案,因爲它可以給任何需要的元素。 –

相關問題