この問題がstackoverflowに存在することは知っています。しかし、私のものは違うようです。問題はありません。しかし、実行時に時々発生します。
私が得た例外: 「System.Collections.Generic.List`1 [System.String] GetTemplateAndPicture(System.String):インデックスが範囲外でした。負でなく、コレクションのサイズよりも小さい必要があります。パラメータ名:index "
ここに私のコードがあります:誰か見て、何が起こるか教えてください。
public static List<string> GetTemplateAndPicture(string sessionID)
{
List<string> data = new List<string>();
try
{
// get the session data from the list.
SessionData sData = null;
try
{
//sData = SessionDataList.Find(p => p.SessionID.Equals(sessionID));
foreach (SessionData sessiondata in SessionDataList.ToList<SessionData>())
{
if (sessiondata != null && !string.IsNullOrEmpty(sessiondata.SessionID))
{
if (sessiondata.SessionID.Equals(sessionID))
{
sData = sessiondata;
break;
}
}
}
}
catch (Exception ex)
{
RightPatientRemoteWebserviceLog.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType + "::" + System.Reflection.MethodBase.GetCurrentMethod().ToString() + ":" + ex.Message);
}
// get template data from session data
string templateData = (sData == null) ? string.Empty : sData.TemplateData;
// get picture data from session data
string pictureData = (sData == null) ? string.Empty : sData.PictureData;
string errorCode = (sData == null) ? string.Empty : sData.ErrorCode;
// remove the session data from the list. no more usage with this data.
if (sData != null && SessionDataList.Count>0)
SessionDataList.Remove(sData);
// create a list for sending.
data.Add(templateData);
data.Add(pictureData);
data.Add(errorCode);
return data;
}
catch (Exception ex)
{
RightPatientRemoteWebserviceLog.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType + "::" + System.Reflection.MethodBase.GetCurrentMethod().ToString() + ":" + ex.Message);
}
return data;
}