我的页面上有多个listViews
。我从DbModels
创建了一些差异列表,需要将这些列表绑定到ListViews
。这里我想要的是if (Particulars == Constants.TAG_OPENING_STOCK)
列表添加到ItemsTradingDebitList
列表中。
和if(Particulars == Constants.TAG_PURCHASE)
另一个列表应添加到ItemsTradingCreditList
列表中。
我尝试用值创建一个新列表,并使用AddRange
将其添加到另一个列表中。但这会带来错误Object Reference not set to an instance of an object.
list was empty
if (Particulars == Constants.TAG_OPENING_STOCK)
{
List<string> NewList = new List<string> { Particulars, Amount };
ItemsTradingDebitList.AddRange(NewList);
}
if(Particulars == Constants.TAG_PURCHASE)
{
List<string> NewList = new List<string> { Particulars, Amount };
ItemsTradingDebitList.AddRange(NewList);
}
if(Particulars == Constants.TAG_SALES)
{
List<string> NewList = new List<string> { Particulars, Amount };
ItemsTradingCreditList.AddRange(NewList);
}
我的预期结果是所有已添加列表的列表。我得到的是一个错误
答案 0 :(得分:4)
我相信“详细信息”,“金额”是字符串,如果两者都是字符串,那么您可以直接将其添加到列表中,这里无需创建新列表
类似的东西
ItemsTradingDebitList.Add("Amount");
ItemsTradingDebitList.Add("Particulars");
根据有问题的错误,我想您尚未初始化列表,即ItemsTradingDebitList
。如果是这样,则在条件成立之前先创建ItemsTradingDebitList
喜欢
List<string> ItemsTradingDebitList = new List<string>();
这将解决您的问题,
List<string> ItemsTradingDebitList = new List<string>(); //This might be missing in your code
if (Particulars == Constants.TAG_OPENING_STOCK)
{
ItemsTradingDebitList.Add("Amount");
ItemsTradingDebitList.Add("Particulars");
}
if(Particulars == Constants.TAG_PURCHASE)
{
ItemsTradingDebitList.Add("Amount");
ItemsTradingDebitList.Add("Particulars");
}
if(Particulars == Constants.TAG_SALES)
{
ItemsTradingDebitList.Add("Amount");
ItemsTradingDebitList.Add("Particulars");
}
答案 1 :(得分:0)
@ prasad-telkikar答案是正确的。我只是想在您的代码上添加一些说明。
看起来Constants.TAG_OPENING_STOCK
和Constants.TAG_PURCHASE
是...常量。可能声明为
public static class Constants
{
public const string TAG_OPENING_STOCK = "TAG_something";
//...
}
因此,您可以改用switch
来改进代码:
var ItemsTradingDebitList = new List<string>() ;
switch (Particulars)
{
case Constants.TAG_OPENING_STOCK:
// ...
break;
case Constants.TAG_PURCHASE:
// ...
break;
// etc.
}
如果它们不是常数而是static readonly string
,则不能在开关中使用它们,而可以使用一系列if { } else { }
。