我刚刚接触到 C#,我想知道是否可以调用数组中的方法。我不得不说我正在使用NoSQL数据库( mongodb )。
这是mi代码,我想在JSON中调用#[derive(Hash)]
struct Baz(...); // Business item
#[derive(Hash)]
struct Qux(...); // Another business item
trait MyTrait {
// all those returned items make my MyTrait unique
fn description(&self) -> &str;
fn get_baz(&self) -> Baz;
fn get_qux(&self) -> Qux;
}
impl Hash for MyTrait {
fn hash<H: Hasher>(&self, hasher: &mut H) {
self.description().hash(hasher);
self.get_baz().hash(hasher);
self.get_qux().hash(hasher);
}
}
方法。
data()
编辑:基本上,我尝试使用C#创建的是以下json。我已经用PHP做过了,现在,我试图用C#来做。
static void Main(string[] args)
{
MongoClient client = new MongoClient();
var db = client.GetDatabase("test");
var collection = db.GetCollection<BsonDocument>("collection");
var document = new BsonDocument
{
{ "date", 10/04/2018 },
{ "data", data() }
};
collection.InsertOneAsync(document);
Console.Read();
}
static void data()
{
for (int i = 1; i <= 50; i++)
{
var data = new BsonDocument
{
{ "magnitude"+i, new BsonDocument{
{ "value", 5 }
} }
};
}
}
答案 0 :(得分:1)
您可以使用方法收集数据,但我不确定您是如何询问的。与代码示例相关,我只是给出一个简单的运行,这是一般的基本编程,而不仅仅是C#。
您可以编写返回void的方法或返回某种类型的变量(至少)。
//Returns void
public void DoSomething()
{
//Do some work
return;
}
//Returns int
public int GetSomething()
{
int result = 100;
return result;
}
当你有返回数据的方法时,可以像使用变量一样使用它们;请记住,每次调用该方法时都会执行该方法,因此通常最好将数据保存到变量中。但是对于你的例子,你可以做这样的事情。
//other code ommitted
var document = new BsonDocument
{
{ "date", 10/04/2018 },
{ "data", getDocuments() }
};
//remaining code omitted
static List<BsonDocument> getDocuments()
{
var documents = new List<BsonDocument>();
for (int i = 1; i <= 50; i++)
{
var document = new BsonDocument
{
{ "magnitude" + i, new BsonDocument { { "value", 5 } } }
};
documents.Add(document);
}
return documents;
}
现在我修改了data()
方法以返回文档列表并更改了命名以匹配它但我不确定您要对该方法做什么。这是我对你试图通过查看你的代码所做的最好的假设,所以如果它错了,可以随意忽略所有这些。
答案 1 :(得分:0)
我可以通过@Michael来解决它。以下代码可以帮助任何人。
static void Main(string[] args)
{
MongoClient client = new MongoClient();
var db = client.GetDatabase("test");
var collection = db.GetCollection<BsonDocument>("Collection");
var document = new BsonDocument
{
{ "date", 10/04/2018 },
{ "data", new BsonDocument{ getDocuments() } }
};
collection.InsertOneAsync(document);
Console.Read();
}
static BsonDocument getDocuments()
{
var documents = new BsonDocument();
for (int i = 1; i <= 5; i++)
{
var document = new BsonDocument
{
{ "magnitude" + i, new BsonDocument { { "value", 5 } } }
};
documents.AddRange(document);
}
return documents;
}