我创建了以下类:
namespace Prototype.ViewModel.MyVM
{
public clas TheVm
{
List<Tuple<string, bool>> list = new List<Tuple<string, bool>>();
public List<Tuple<string, bool>> List
{
get { return this.list; }
set { this.list = value; }
}
}
}
在另一个代码文件中,我正在尝试修改封装List&gt;的其中一个值。对象:
for (int i = 0; i < anotherList.Count; i++)
{
TheVM.List[i].Item2 = (anotherList[i].Item2 == 1);
}
但是我收到以下错误消息:
属性或索引器'Tuple.Item2'不能分配给“ - ”它是只读的。
我该如何解决?
答案 0 :(得分:6)
您需要创建一个新的元组,因为它们是不可变的:
for (int i = 0; i < anotherList.Count; i++)
{
TheVM.List[i] = new Tuple<string, bool>(TheVM.List[i].Item1, anotherList[i].Item2 == 1);
}
这就是说,我建议不要使用元组来查看模型。
答案 1 :(得分:1)
如果您需要在创建元组后更改其中的一部分,则不需要元组,只需创建自己的类:
BOX = [
"aa1",
"aa2",
"aa3"]
for B in BOX:
filename = B+".xls"
#create data frame
BDF = pd.read_excel(r'C:\Projects\BOXES\\' + filename)
#clean data frame
BDF = BDF.dropna(how="all")
BDF['Total Cost'] = BDF['Total Cost'].str.replace('.', '')
BDF.columns = ['LVL', 'PN', 'Leadtime', 'Description', 'Ext QTY']
BDF.PN = BDF.PN.str.strip()
sheetname=B
#save to sheet
with pd.ExcelWriter(r'C:\Projects\BOXES\BOXED.xlsx') as writer:
BDF.to_excel(writer, sheet_name=B, index=False)
#delete data frame before repeating
del(BDF)
del(B)
之后,您可以将列表定义为:
public class MyTuple
{
public MyTuple(string item1, bool item2)
{
Item1 = item1;
Item2 = item2;
}
public string Item1 {get;set;}
public bool Item2 {get;set;}
}
并且可以更改Item1 / Item2