C#3.0 实战迭代器

......

using System.Xml.Linq;
using System.Collections;

 

namespace YJXMLCombination
{
    struct STRUCT_TRANS_MAIN
    {
        public string trans_type;
        public string s_ent_name;
        public string trans_date;
        public string create_date;
        public string report_user;
        public string user_link;
        public string if_network;
        public string s_licence_no;
        public string s_ent_type;
        public string s_ent_address;
    }

......

 

public class TRANS_MAIN_Collection : IEnumerable<STRUCT_TRANS_MAIN>
    {
        XElement xes;

        public TRANS_MAIN_Collection(XElement xes)
        {
            this.xes = xes;
        }

 

        IEnumerator<STRUCT_TRANS_MAIN> IEnumerable<STRUCT_TRANS_MAIN>.GetEnumerator()
        {
            IEnumerable<XElement> elements = from xe in xes.Elements("trans_main") select xe;

 

            STRUCT_TRANS_MAIN struct_TRANS_MAIN = new STRUCT_TRANS_MAIN();
            foreach (XElement element in elements)
            {
                struct_TRANS_MAIN.trans_type = element.Element("trans_type").Value.ToString();
                struct_TRANS_MAIN.s_ent_name = element.Element("s_ent_name").Value.ToString();
                struct_TRANS_MAIN.trans_date = element.Element("trans_date").Value.ToString();
                struct_TRANS_MAIN.create_date = element.Element("create_date").Value.ToString();
                struct_TRANS_MAIN.report_user = element.Element("report_user").Value.ToString();
                struct_TRANS_MAIN.user_link = element.Element("user_link").Value.ToString();
                struct_TRANS_MAIN.if_network = element.Element("if_network").Value.ToString();
                struct_TRANS_MAIN.s_licence_no = element.Element("s_licence_no").Value.ToString();
                struct_TRANS_MAIN.s_ent_type = element.Element("s_ent_type").Value.ToString();
                struct_TRANS_MAIN.s_ent_address = element.Element("s_ent_address").Value.ToString();

                yield return struct_TRANS_MAIN;
            }
        }

 

        IEnumerator IEnumerable.GetEnumerator()
        {
            return ((IEnumerable<STRUCT_TRANS_MAIN>)this).GetEnumerator();
        }
    }

 

调用方法:

TRANS_MAIN_Collection trans_MAIN_Collection = new TRANS_MAIN_Collection(xes);
 foreach (STRUCT_TRANS_MAIN struct_TRANS_MAIN in trans_MAIN_Collection)
 {

......
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值