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