C# 如何更新通过引用传递给方法的泛型列表?
我有一个消息的通用列表,通过引用将其传递给一个方法。 该方法使用列表中的一条消息并更新该消息 通过引用传递整个列表时,如何使用新文本更新此消息 e、 gC# 如何更新通过引用传递给方法的泛型列表?,c#,generics,C#,Generics,我有一个消息的通用列表,通过引用将其传递给一个方法。 该方法使用列表中的一条消息并更新该消息 通过引用传递整个列表时,如何使用新文本更新此消息 e、 g private int RetrieveAndProcessQueueEntityRows( 字符串前导码, 字符串sMessageFIDs, int iNumberToFetch, 参考列表(信息传道者){ ////...... 消息currMessage=null; foreach(oMessageList中的消息oMessage){ if
private int RetrieveAndProcessQueueEntityRows(
字符串前导码,
字符串sMessageFIDs,
int iNumberToFetch,
参考列表(信息传道者){
////......
消息currMessage=null;
foreach(oMessageList中的消息oMessage){
if(oMessage.Message\u UID==opatientInfentityCurrent.MessageFID){
currMessage=oMessage;
打破
}
}
现在我可以使用currMessage对象进行所需的更新。但是如何使用currMessage
更新列表oMessageList
谢谢你的帮助!
-Lakus如果消息是一个类,则不需要通过引用传递任何消息;只需更新现有消息对象,或创建一个新消息对象并在列表中交换它(通过索引器,或使用删除/添加) 如果要创建新列表,只需
ref
因此,如果Message
是一个可变类,只需:
currMessage.SomeProperty = "some value"; // done
如果没有,请使用oMessageList
的索引器(或者,如所述,添加/删除)-即
请注意,如果您在foreach
期间确实更改了列表内容,那么foreach
迭代器几乎肯定会崩溃;有一些方法可以处理这个问题,但如果可以的话:只需更新消息本身的属性。这应该是一个列表吗?或者这是一个基类……哦,从风格上讲——除非您的团队理想线需要它,你可能想摆脱匈牙利符号。
currMessage.SomeProperty = "some value"; // done
oMessageList[index] = replacementMessage;