C#将列表添加到Oracle用户定义类型

时间:2018-08-05 20:14:30

标签: c# oracle list

我有两个Oracle用户定义类型对象

T_CODE_LIST_TABLE 
T_CODE_LIST

我可以将新的T_CODE_LIST添加到T_CODE_LIST_TABLE 如下

T_CODE_LIST_TABLE t_code_list_tab = new T_CODE_LIST_TABLE();

t_code_list_tab.Value = new T_CODE_LIST[] {
        new T_CODE_LIST() { TEAMID = "1", GROUPTYPE = "1", GROUPLOGIC = "1", GROUPVALUE = val1.ToString()},
        new T_CODE_LIST() { TEAMID = "2", GROUPTYPE = "2", GROUPLOGIC = "2", GROUPVALUE = val2.ToString()},
        new T_CODE_LIST() { TEAMID = "3", GROUPTYPE  = "3", GROUPLOGIC = "3”,GROUPVALUE = val3.ToString()}          
 };

但是我希望它能够在如下所示的运行时期间根据用户需要添加任意数量的T_CODE_LIST(),我该怎么做?

t_code_list_tab.Value = new T_CODE_LIST[] {
        new T_CODE_LIST() { TEAMID = "1", GROUPTYPE = "1", GROUPLOGIC = "1", GROUPVALUE = val1.ToString()},
        new T_CODE_LIST() { TEAMID = "2", GROUPTYPE = "2", GROUPLOGIC = "2", GROUPVALUE = val2.ToString()},
        new T_CODE_LIST() { TEAMID = "3", GROUPTYPE  = "3", GROUPLOGIC = "3”,GROUPVALUE = val3.ToString()},
.
.
.
N times
.
.
.

};

2 个答案:

答案 0 :(得分:0)

您可以通过多种方法解决此问题。动态地在数组中添加值并非易事。 更好的解决方案之一是创建列表然后添加对象。每当需要时,都可以使用.ToArray()函数将其转换为数组。

您的代码可以如下所示

List<T_CODE_LIST> tcodes =new List<T_CODE_LIST>();
tcodes.Add(new T_CODE_LIST() { TEAMID = "1", GROUPTYPE = "1", GROUPLOGIC = "1", GROUPVALUE = val1.ToString()});
.
.
....N times ...whenever needed

T_CODE_LIST_TABLE t_code_list_tab = new T_CODE_LIST_TABLE();
t_code_list_tab.Value = tcodes.ToArray();

答案 1 :(得分:0)

另一种解决方案是在需要时调整数组大小,具体取决于要添加到数组中的项。

您可以查看MSDN Resize Array

的示例

我希望这会有所帮助。