相关疑难解决方法(0)

如何在C#中创建动态属性?

我正在寻找一种方法来创建一个具有一组静态属性的类.在运行时,我希望能够从数据库向此对象添加其他动态属性.我还想为这些对象添加排序和过滤功能.

我如何在C#中执行此操作?

c#

86
推荐指数
5
解决办法
13万
查看次数

C#:动态添加字段到类

我搜索谷歌但结果却是误会.
这是一个代码流程:

public class Store
{
     public dynamic GetList(List<string> propertyFields)
     {
          // Body here
          // for in list propertyFields. Such as: ["Code", "Name", "Address", ...]
          // dynamic result = ...
          // result.Code = "value", result.Name = "abc", result.Address = "homeless", result.... = "..."
          // return result
     }
}
Run Code Online (Sandbox Code Playgroud)

方法返回一个动态对象.
propertyFields是字段名称列表.当我在列表中传递4个字符串时,dynamic有4个属性字段值(稍后).
当我调用这个方法时:

Store store = new Store(); 
var rs = store.GetList(["Code","Name","Address"])
Console.WriteLine(rs[0].Code)
Run Code Online (Sandbox Code Playgroud)

这是我的观点.
我的问题:是否有可能在C#中做到这一点?

c# dynamic

2
推荐指数
1
解决办法
6001
查看次数

使用索引迭代数组并根据索引分配值

我今天早些时候遇到了这个问题,由于我找不到令人满意的解决方案,我决定改变我的班级设计,并且具有单独的属性,如标签1,标签2,标签3等.

我的主要问题是我需要将网格绑定到包含其他属性列表的对象,我需要将列表中的每个项目显示为单独的列,我无法做到.因此,我正在分别声明变量.原始问题在这里......

现在,我正面临着一个最常见的设计问题,可能是每个程序员在某些时候都有这个问题.这是演示它的代码,

for (int i = 0; i < tags.Length; ++i) // Length not known here.
{
    if(i==0){
        tag1 = tags[0];
    } 
    else if(i == 1){
        tag2 = tags[1];
    }
    else if(i == 2){
        tag3 = tags[2];
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

tags是一个字符串数组.

我想知道是否有更优雅的方式来做到这一点.另外需要注意的是,这个循环的效率随着它的进展而降低,因为随着迭代次数的增加,它必须检查更多的条件.如果我们知道每个条件在所有迭代中变为一次,那么我们可以在条件成为之后移除它.

c# design-patterns c#-4.0

0
推荐指数
1
解决办法
156
查看次数

标签 统计

c# ×3

c#-4.0 ×1

design-patterns ×1

dynamic ×1