繁体   English   中英

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

[英]Binding multiple values to different variables in c# using for loop

我应该如何在不使用索引号的情况下绑定值。 如上所述,如果可能的话,如何在这里使用 forLoop 。 在查询中我 gor 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;
}

鉴于你的书是 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++
    }

如何使用 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[]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM