Cassandra列表数据类型C#获取最后一个元素

时间:2016-11-05 06:52:41

标签: c# database list cassandra ienumerable

我在Cassandra DB中有一个List。 我使用以下代码来获取它们,

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

        }

我需要将此列表对象(现在转换为字符串)转换为数组,以便我可以根据需要获取最后一个字符串。

是否有任何内置方法可以做同样的事情?

2 个答案:

答案 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方法的游戏,请告诉我。

答案 1 :(得分:0)

您可以使用list<string>方法将Cassandra List<T>检索到.NET Row.GetValue<T>()中:

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