C# 如何从类返回特定的数据集

C# 如何从类返回特定的数据集,c#,architecture,class-design,best-fit,C#,Architecture,Class Design,Best Fit,我的结构与下面的结构相似 基类 public class BaseClass { public string Name { get; set; } public string Address { get; set; } public int Age { get; set; } public Guid Guid { get; set; } public string Hometown { get; set; } } public class Derived

我的结构与下面的结构相似

基类

public class BaseClass
{
    public string Name { get; set; }
    public string Address { get; set; }
    public int Age { get; set; }
    public Guid Guid { get; set; }
    public string Hometown { get; set; }
}
public class DerivedClass : BaseClass
{
    public List<DerivedClassDataItem> Data { get; set; }
}
public class DerivedClassDataItem
{
    public string Datum1 { get; set; }
    public string Datum2 { get; set; }
    public string Datum3 { get; set; }
    public string Datum4 { get; set; }
    public int Datum5 { get; set; }
    public DateTime Datum6 { get; set; }
}
派生类

public class BaseClass
{
    public string Name { get; set; }
    public string Address { get; set; }
    public int Age { get; set; }
    public Guid Guid { get; set; }
    public string Hometown { get; set; }
}
public class DerivedClass : BaseClass
{
    public List<DerivedClassDataItem> Data { get; set; }
}
public class DerivedClassDataItem
{
    public string Datum1 { get; set; }
    public string Datum2 { get; set; }
    public string Datum3 { get; set; }
    public string Datum4 { get; set; }
    public int Datum5 { get; set; }
    public DateTime Datum6 { get; set; }
}
DerivedClass
返回特定信息集的最佳做法是什么?
一个潜在的集合可以是:
名称
地址
Guid
,然后是只包含
数据1
数据4
列表

我可以看到
匿名类型
元组
或另一组
,这些都是有效的方法

对于为返回的集合创建新的类集合,我关心的是类的结构将类似于上面提到的三个类的结构,只是它将有较少的选定成员,这对我来说听起来并不理想。(代码和结构重复)

使用
匿名类型是我解决这个问题的初始解决方案,比如

List<DerivedClass> list = new List<DerivedClass>();

var mySet = list.Select(d => new
{
    Name = d.Name,
    Address = d.Address,
    .
    .
    .
    .
    .
    Data = d.Data.Select(item => new
    {
        Datum1 = item.Datum1,
        Datum4 = item.Datum4
    })
});
然后我的
GET
将返回
retunFile
(这是一个非常简单的方法,我已经删除了不相关的代码)


如果API调用是使用这些类的地方,那么我个人喜欢保持简单,避免复杂的继承层次结构。记住,简单代码就是好代码

我将为每个api请求/响应调用创建一个单独的类。对于非常简单的api调用(例如ajax请求),我喜欢使用匿名类型,但对于只处理api调用的控制器,我喜欢创建单独的类,并将它们组织在一个漂亮的文件夹结构中


每个人都有自己的“风格”,但只要你努力做到简单,你的代码将是可维护的

要从
DerivedClass
返回特定的信息集,请返回何处?数据对象也可以有层次结构,可以有使用基本属性(
Name
Address
,等等)的基本方法,也可以有使用继承属性的继承方法(
Datum1
,等等)。请澄清您的目标。到目前为止还不清楚,因为类没有返回任何内容。。。您可能正在寻找概念。。。此外,在没有澄清当前方法的错误的情况下要求“最佳实践”是要求“基于意见”的结束-可能需要提及一些现有问题,如,以显示您已经看到了什么。我已经更新了问题。希望这能让其他人更清楚。我想了解一下。你是否有资料(文章、知识库)来支持你选择这种风格的动机?我不相信有太多关于这种风格的阅读材料,因为这些想法都是基于观点的,有很多思想流派,根据我的经验,这种结构在大多数情况下都很有效。我建议构建您认为最好的结构,然后在完成项目后分析您的解决方案是否易于使用、易于理解、易于更新。