我在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)
{
}
我需要将此列表对象(现在转换为字符串)转换为数组,以便我可以根据需要获取最后一个字符串。
是否有任何内置方法可以做同样的事情?
答案 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];