我正在拨打Web服务,并取回要添加到列表中的数据。没问题。我的remedyinfo
列表中的内容可以通过VS中的断点进行验证。
我似乎无法弄清楚如何在列表中搜索与新变量匹配的值,例如,我想查找incidentID
是否等于“ INC000000001”。
我尝试过var foundItem = remedyinfo.Contains("searchvalue")
,但它总是返回false
。
我已经尝试了其他帖子中建议的LINQ查询:
var foundItem = myArray.SingleOrDefault(item => item.intProperty == someValue);
我要注意的是,该示例所指的是比较item.intProperty == somevalue)
应该有效,在item.
之后我无法获得任何参考,仅建议Equals
,GetType
,GetHashCode
和ToString
。因此,例如,我无法引用item.incidentID
。
非常感谢任何指导。
var remedyinfo = new List<object> { };
remedyinfo.Add(new IncidentItem()
{
assignedgroup = assignedgroup,
incidentID = incidentID,
submitdate = offsetDate.ToString(),
priority = priority,
status = status,
assignee = assignee,
summarydesc = summarydesc,
notes = notes
});
[Serializable]
public class IncidentItem
{
public string assignedgroup { get; set; }
public string incidentID { get; set; }
public string submitdate { get; set; }
public string priority { get; set; }
public string status { get; set; }
public string assignee { get; set; }
public string summarydesc { get; set; }
public string notes { get; set; }
}
答案 0 :(得分:0)
要检查列表是否包含项,有不同的选项。您可以在.Net 3.5或更高版本中使用“任意”:
if (remedyinfo.Any(incident => incident.incidentID == "Hello"))
// rest of code
如果您还有另一个IncidentItem,并且希望像这样签入列表
var anotherIncident = new IncidentItem();
if (remedyInfo.Contains(anotherIncident))
然后,您必须实现IEquatable
类中的Equals
或重写HashCode
和IncidentItem
。
有关Equals和HashCode的更多信息在这里: