首页 > 解决方案 > 来自主模型的 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,则每个属性都将显示为列/字段(列表等某些类型除外)。

有时我需要从主模型中获取一个简单的对象(子模型),例如只有IDand的模型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#interfacemodel

解决方案


推荐阅读