c# - 来自主模型的 C# 子模型
问题描述
假设我有一个像这样的对象(模型):
public class Sample
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
public string X { get; set; }
public string Y { get; set; }
public string Z { get; set; }
public bool V { get; set; }
public float Length { get; set; }
public DateTime Creation { get; set; }
}
如果我创建此对象的列表List<Sample>
并将其绑定到 DataGridView,则每个属性都将显示为列/字段(列表等某些类型除外)。
有时我需要从主模型中获取一个简单的对象(子模型),例如只有ID
and的模型Name
。所以我要做的是创建另一个类,例如:
public class SampleMetadata
{
public int ID { get; set; }
public string Name { get; set; }
}
然后在主模型列表上执行 LINQ 查询并创建另一个,但带有子模型,例如:
public class Foo
{
private List<Sample> samples = new List<Sample>();
private List<SampleMetadata> sampleMetadatas;
private void Test()
{
sampleMetadatas =
(from s in samples
select new SampleMetadata()
{
ID = s.ID,
Name = s.Name
}).ToList();
}
}
在某些情况下,我必须创建更多包含不同数据的类(子模型);一些来自主模型,另一些是组合 2 个或更多字符串或计算列表项的 int 的属性。
最近一直在研究Interfaces,偶尔使用一下,虽然看懂了,但是无法实际使用。
所以我问这是我可以使用接口从主模型创建多个子模型的情况吗?
解决方案
推荐阅读
- c++ - 为什么 decltype(captured_var) 的行为不符合预期?
- python - 激活 bot.polling,同时激活命令处理程序。Telebot,蟒蛇 3
- python - 该程序将“”添加到我正在索引的字符串中
- javascript - 使用 Google 地球引擎时出现“生成图表时出错”
- r - 如何在我自己的包中使用 data.table::setDTthreads()?
- algorithm - K 个桶中 N 个对象的所有可能组合
- excel - 为什么我的 excel 宏不调用外部程序
- c++ - 模拟鼠标悬停在任何 Windows 应用程序的任何 UI 元素上
- google-sheets - 如何在 x 由单元格值确定的列中打印 1 到 x?
- sql-server - 如何从冒号分隔的平面文件中提取 varchar 中的日期时间?