何らかの条件でxmlリストを逆直列化してデータを取得したいとします。しかし、私はそのための適切な解決策を得ていませんでした。以下は私のコードスニペットです:Cでの条件付き逆シリアル化XMLリストの取得方法
以下public List<LinkInfo> GetLinks(string entityType, string relatedEntityType, string linkType)
{
try
{
XmlSerializer deserializer = new XmlSerializer(typeof(Project));
TextReader reader = new StreamReader(@"E:\\SampleMetaData.xml");
object obj = deserializer.Deserialize(reader);
Project xmlData = (Project)obj;
return xmlData.Module.Links.Link.Select(field => new LinkInfo
{
EntityId = field.EntityId,
EntityType = field.EntityType,
RelatedEntityId = field.RelatedEntityId,
RelatedEntityType = field.RelatedEntityType,
LinkType = field.LinkType
}).ToList();
}
catch(Exception ex)
{
Console.WriteLine("Error in",ex);
throw;
}
}
は私のXMLファイル形式です:
<Links>
<Link EntityId="5" EntityType="Doors_Module1" RelatedEntityId="7" RelatedEntityType="Doors_Module2" LinkType="InLink"/>
<Link EntityId="6" EntityType="Doors_Module1" RelatedEntityId="8" RelatedEntityType="Doors_Module2" LinkType="InLink"/>
<Link EntityId="7" EntityType="Doors_Module1" RelatedEntityId="9" RelatedEntityType="Doors_Module2" LinkType="External"/>
</Links>
私はwhere LinkType="Inlink" EntityType="Doors_Module1" and RelatedEntityType="Doors_Module2"
私はこれをどのように行うことができますように取得したいですか? ありがとうございました。
のために働く必要がありますか? その場合、 '.Where(x => x.LinkType == 'Doors_Module1')' –
を簡単に使うことができますか?LinkInfoクラスも共有できますか? –
あなたはforeachまたはループ 'obj。[i] .LinkType' kind offを使用することができます –