2016-11-05 89 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

可能的,但没有尝试过。我很满意我发布的答案,因为它可以给任何需要的元素。 –

相关问题