如何将数据分配给变量?
How to assign data to a variable?
我正在尝试根据可用示例将 Neo4j 数据库中的数据分配给 C# 中的变量:
var born = graphClient.Cypher
.Match("(person:Person)")
.Where((Person person) => person.name == "Tom Hanks")
.Return(person => person.As<Person>().born)
.Results;
但是当我尝试打印出值时:
Console.WriteLine(born);
我在控制台中得到了这个:
System.Collections.Generic.List`1[System.Int32]
我做错了什么?
由于 born
指的是一个列表,您将需要迭代项目:
foreach (int item in born)
{
Console.WriteLine(item);
}
Console.WriteLine
在传递的对象上调用 ToString()
,对于大多数类型,这将是类型名称,如您所见。
当您像上面那样进行迭代时,它会写入列表中每个整数的字符串表示形式。
根据您的输出,您在结果中收到了一组与您的过滤器相匹配的项目。
如果你想打印第一个元素,你可以这样做:
Console.WriteLine(born.First());
请记住,在该集合中它可能不止一个元素...
如果你想打印所有出生的物品,你可以使用foreach循环来实现:
您只需要执行以下操作:
foreach (var item in born)
{
Console.WriteLine(item);
}
使用 foreach 循环是最好的方法,因为即使集合中有 0 个元素,它也能按预期工作(即:它不会失败或抛出异常)
您必须小心使用 First() ,因为如果您的集合为空,它会抛出异常。因此,如果您知道最终可能会得到一个空集合,则始终可以使用 FirstOrDefault() ,其中 return null - 或根据数据类型的默认值 - 如果是空集合
要么序列化您的 "born" 集合并打印,要么从 "born" 列表中逐个对象并打印
Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(born));
我正在尝试根据可用示例将 Neo4j 数据库中的数据分配给 C# 中的变量:
var born = graphClient.Cypher
.Match("(person:Person)")
.Where((Person person) => person.name == "Tom Hanks")
.Return(person => person.As<Person>().born)
.Results;
但是当我尝试打印出值时:
Console.WriteLine(born);
我在控制台中得到了这个:
System.Collections.Generic.List`1[System.Int32]
我做错了什么?
由于 born
指的是一个列表,您将需要迭代项目:
foreach (int item in born)
{
Console.WriteLine(item);
}
Console.WriteLine
在传递的对象上调用 ToString()
,对于大多数类型,这将是类型名称,如您所见。
当您像上面那样进行迭代时,它会写入列表中每个整数的字符串表示形式。
根据您的输出,您在结果中收到了一组与您的过滤器相匹配的项目。 如果你想打印第一个元素,你可以这样做:
Console.WriteLine(born.First());
请记住,在该集合中它可能不止一个元素...
如果你想打印所有出生的物品,你可以使用foreach循环来实现: 您只需要执行以下操作:
foreach (var item in born)
{
Console.WriteLine(item);
}
使用 foreach 循环是最好的方法,因为即使集合中有 0 个元素,它也能按预期工作(即:它不会失败或抛出异常) 您必须小心使用 First() ,因为如果您的集合为空,它会抛出异常。因此,如果您知道最终可能会得到一个空集合,则始终可以使用 FirstOrDefault() ,其中 return null - 或根据数据类型的默认值 - 如果是空集合
要么序列化您的 "born" 集合并打印,要么从 "born" 列表中逐个对象并打印
Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(born));