我試圖獲得一個類似值的列表中的唯一值區分只有一個管道分隔字符串中的一個元素...我一直得到至少一個對象必須實現Icomparable。我不明白爲什麼我一直這樣做。我能夠按照這個價值分組......爲什麼我找不到最大值...我想它正在尋找某種東西來與它進行比較。如果我得到整數版本,它會停止對我大喊大叫?這是我最後一次嘗試使用LINQ ...至少有一個對象必須實現Icomparable
var queryResults = PatientList.GroupBy(x => x.Value.Split('|')[1]).Select(x => x.Max());
我知道我可以通過其他方式獲得唯一值。我只是很難找出答案。在那份清單中,我知道在我的同類兄弟中價值最高的字符串是我想要添加到列表中的字符串。我怎樣才能做到這一點?我完全一片空白,因爲我一直在試圖讓這個在LINQ的,沒有運氣的最後幾天工作...
foreach (XmlNode node in nodeList)
{
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(node.OuterXml);
string popPatInfo = xDoc.SelectSingleNode("./template/elements/element[@name=\"FirstName\"]").Attributes["value"].Value + ", " + xDoc.SelectSingleNode("./template/elements/element[@name=\"LastName\"]").Attributes["value"].Value + " | " + DateTime.Parse(xDoc.SelectSingleNode("./template/elements/element[@name=\"DateOfBirth\"]").Attributes["value"].Value.Split('T')[0]).ToString("dd-MMM-yyyy");
string patientInfo = xDoc.SelectSingleNode("./template/elements/element[@name=\"PatientId\"]").Attributes["value"].Value + "|" + xDoc.SelectSingleNode("./template/elements/element[@name=\"PopulationPatientID\"]").Attributes["enc"].Value;// +"|" + xDoc.SelectSingleNode("./template/elements/element[@name=\"AdminDate\"]").Attributes["value"].Value;
int enc = Int32.Parse(patientInfo.Split('|')[1]);
if (enc > temp)
{
lastEncounter.Add(enc, patientInfo);
temp = enc;
}
//lastEncounter.Add(Int32.Parse(patientInfo.Split('|')[1]));
PatientList.Add(new SelectListItem { Text = popPatInfo, Value = patientInfo });
}
我想使用某種形式的臨時變量來找出是最高的值,然後將該字符串添加到列表中。我完全是一個空白,但是...
在該選擇列表項目右側,該值具有Patient ID,並遇到ID。最高的遭遇ID將是最後一次遭遇。初始列表中可能有幾個項目都是同一個患者(相同的患者ID ......但也可能有幾個不同的患者編號)。但是SelectListItem的每個值都有一個遇到的ID。最高的是最近的遭遇。我希望每個患者ID的最後一次接觸,我希望列表中的那些......我想通過患者ID右邊第一組,然後選擇遇到ID的最大值。 – SoftwareSavant
這是正確的嗎? patient.Value.Split('|')[0]是PatientID patient.Value.Split('|')[1]是EncounterID –
這是正確的。 – SoftwareSavant