gpt4 book ai didi

c# - 如何返回多个类的对象?

转载 作者:太空狗 更新时间:2023-10-30 01:01:47 25 4
gpt4 key购买 nike

我需要反序列化一个json,所以我创建了这个类结构:

public class Detail
{
public string code { get; set; }
public string type { get; set; }
}

public class User
{
public string name { get; set; }
public string surname { get; set; }
public string lastname { get; set; }
}

public class Tenant
{
public List<User> user { get; set; }
public List<Detail> detail { get; set; }
}

public class RootObject
{
public Tenant tenant { get; set; }
}

现在我需要返回一个包含UserDetail 的对象。特别是,我想向用户发送一个允许访问 obj.Tenant.Userobj.Tenant.Detail 的对象。这是我发回数据的方法:

public List<Tenant> searchUser()
{
var obj = JsonConvert.DeserializeObject<RootObject>("json");
return obj.tenant; //?
}

Tenant 对象包含类 userdetail。现在 user 是用户列表, detail 包含每个用户的详细信息列表。但不幸的是我收到了这个错误信息:

Can not be converted implicitly the 'User.Tenant' type 'System.Collections.Generic.List <User.Tenant>' Tenant 

这一行:return obj.tenant;

我想我弄错了发回数据的类型。但我该如何解决这个问题?

最佳答案

取决于您真正需要的。

如果您需要返回 Tenant 对象,请将您的方法签名/返回更改为此...

public Tenant getTenant()
{
var obj = JsonConvert.DeserializeObject<RootObject>("json");
return obj.tenant;
}

如果您需要用户,请将您的方法签名/返回更改为此...

public List<User> getUsers()
{
var obj = JsonConvert.DeserializeObject<RootObject>("json");
return obj.tenant.user; //?
}

但是,我建议更改您的属性名称以使用正确的大写字母。如果您要返回 User 对象的列表,那么将该属性称为 Users 而不是 user 是有意义的。考虑您的数据模型,每个链接是一对一还是一对多等,并相应地编码/命名。

MS 命名建议 ( https://msdn.microsoft.com/en-us/library/ms229012.aspx )。

关于c# - 如何返回多个类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com