使用for循环将多个值绑定到c#中的不同变量

时间:2017-09-28 10:45:06

标签: c# asp.net

如何在不使用索引号的情况下绑定值。如上所述,如果可能的话,如何在这里使用forLoop。在查询中我有14行和4列。

public class SLRInvestmentPrev
    {
        [DbCol("BOOK_VALUE")]
        public double BOOK_VALUE { get; set; }
        [DbCol("INSTRUMENT_ID")]
        public int instrument_id { get; set; }
    }
Public void Compute()
    {
var slrinvestmentPrev = Database.BindList<SLRInvestmentPrev>(Transaction, @"Query here");

View["BOOK_VALUE_HTM0"] = slrinvestmentPrev[0].BOOK_VALUE;
View["BOOK_VALUE_HTM1"] =     slrinvestmentPrev[1].BOOK_VALUE;
View["BOOK_VALUE_HTM2"] =  slrinvestmentPrev[2].BOOK_VALUE;
View["BOOK_VALUE_HTM3"] = slrinvestmentPrev[3].BOOK_VALUE;
View["BOOK_VALUE_HFT1"] = slrinvestmentPrev[4].BOOK_VALUE;
View["BOOK_VALUE_HFT2"] = slrinvestmentPrev[5].BOOK_VALUE;
View["BOOK_VALUE_HFT3"] = slrinvestmentPrev[6].BOOK_VALUE;
View["BOOK_VALUE_HFT4"] = slrinvestmentPrev[7].BOOK_VALUE;
View["BOOK_VALUE_HFT5"] = slrinvestmentPrev[8].BOOK_VALUE;
View["BOOK_VALUE_AFS1"] = slrinvestmentPrev[9].BOOK_VALUE;
View["BOOK_VALUE_AFS2"] = slrinvestmentPrev[10].BOOK_VALUE;
View["BOOK_VALUE_AFS3"] = slrinvestmentPrev[11].BOOK_VALUE;
View["BOOK_VALUE_AFS4"] = slrinvestmentPrev[12].BOOK_VALUE;
View["BOOK_VALUE_AFS5"] = slrinvestmentPrev[13].BOOK_VALUE;
}

2 个答案:

答案 0 :(得分:0)

鉴于您的书籍是HTM0到AFS5,您可以执行类似

的操作
    List<String> booklist = new List<string>(new  String[] { "BOOK_VALUE_HTM0", "BOOK_VALUE_HTM1", "BOOK_VALUE_HTM2",<.....> "BOOK_VALUE_AFS5" } ); // or populate from some other means
    int index = 0;
    foreach (String sbook in booklist)
    {
        View[sbook] = slrinvestmentPrev[index].BOOK_VALUE;
        index++
    }

答案 1 :(得分:0)

  

如何使用的方法将右侧索引值绑定到不同的变量   for循环还是有任何方法可以使代码简短并且没有错误   如果假设是行,则不小于硬编码索引值?

因此,您需要一种方法将名称绑定到索引,这是使用Dictionary的一种方式:

var nameIndexes = new Dictionary<int, string>()
{
    { 0, "BOOK_VALUE_HTM0" }, { 1, "BOOK_VALUE_HTM1" }, { 2, "BOOK_VALUE_HTM2" }, { 3, "BOOK_VALUE_HTM3" },
    { 4, "BOOK_VALUE_HFT1" }, { 5, "BOOK_VALUE_HFT2" }, { 6, "BOOK_VALUE_HFT3" }, { 7, "BOOK_VALUE_HFT4" }, { 8, "BOOK_VALUE_HFT5" },
    { 9, "BOOK_VALUE_AFS1" }, { 10, "BOOK_VALUE_AFS2" }, { 11, "BOOK_VALUE_AFS3" }, { 12, "BOOK_VALUE_AFS4" }, { 13, "BOOK_VALUE_AFS5" }
};

for(int i = 0; i < slrinvestmentPrev.Count; i++)
{
    View[nameIndexes[i]] = slrinvestmentPrev[i].BOOK_VALUE;
}

如果索引始终以0开头且没有间隙,您还可以使用List<string>string[]