gpt4 book ai didi

linq - 至少有一个对象必须实现 Icomparable

转载 作者:行者123 更新时间:2023-12-02 08:52:45 27 4
gpt4 key购买 nike

我正在尝试在相似值列表中获取唯一值,仅通过管道分隔字符串中的一个元素来区分...我不断得到至少一个对象必须实现 Icomparable。我不明白为什么我总是得到这个。我能够按该值进行分组...为什么我找不到最大值...我猜它正在寻找与之比较的东西。如果我得到整数版本,它会停止对我大喊大叫吗?这是我最后一次尝试使用 LINQ...

    var queryResults = PatientList.GroupBy(x => x.Value.Split('|')[1]).Select(x => x.Max());

我知道我可以通过其他方式获得独特的值(value)。我只是很难弄清楚。在该列表中,我知道在其相似的兄弟中具有最高值的字符串是我要添加到列表中的字符串。我怎样才能做到这一点?我完全一片空白,因为过去几天我一直试图让它在 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 });
}

我正在考虑使用某种临时变量来找出最高值,然后将该字符串添加到列表中。然而我完全一片空白......

最佳答案

在这里,我以匿名类型获取 ID 以使其可读。

var patientEncounters= from patient in PatientList
let PatientID=Int32.Parse(patient.Value.Split('|')[0])
let EncounterID=Int32.Parse(patient.Value.Split('|')[1])
select new { PatientID, EncounterID };

然后我们按 UserID 分组并获取最后一次遭遇

var lastEncounterForEachUser=from pe in patientEncounters
group pe by pe.PatientID into grouped
select new
{
PatientID=grouped.Key,
LastEncounterID=grouped.Max(g=>g.EncounterID)
};

关于linq - 至少有一个对象必须实现 Icomparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7361514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com