Return 对于 class C# 中数据 table 中的每个值

Return for each value in data table in class C#

我已经class使用以下网络服务获取序列号:

  class SeriNumber
    {
        private string serialNumber;
        public SeriNumber(string serial,string Customer)
        {
            this.serialNumber = serial;
            if (Customer.Equals("ABC"))
            {
                Service.SoapClient b = new Service.SoapClient();
                string resultz = b.GetPanelSerializeResult(Customer,serial).Trim();
                var xml = resultz;
                using (var textReader = new StringReader(xml))
                {
                    var ds = new DataSet();
                    ds.ReadXml(textReader);
                    DataTable data = new DataTable();
                    data = ds.Tables[0];
                    foreach (DataRow row in data.Rows)
                    {
                      serial = row[3].ToString();
                      serialNumber = serial;
                    }
                }

            }
        }
        public string GetSeriNumber()
        {
            return serialNumber;
        }
    }

表单中的代码

 SeriNumber seriNumber = new SeriNumber("1162200033501","ABC");
    string serial = seriNumber.GetSeriNumber();

我知道通用连载有 24 个子连载:

| Serinumber     |
| -------------- |
| 21162200033501 | 
| 21162200033502 | 
| 21162200033503 | 
| -------------- | 
| 21162200033523 | 
| 21162200033524 | 

我知道通用系列有 24 个子系列,我想得到它。在循环结果中得到 24 个连续剧但 return 我只得到最后一个连续剧。请帮我更正一下:每个子连载都会return 1次。所以 return 总计 24 次。

您可能需要将 sub-serials 添加到列表或数组中,而不是仅仅重复覆盖序列字段。例如:

private List<string> subSerials = new ();
...
subSerials.Add(row[3].ToString());
...
public IReadOnlyList<string> SubSerials => subSerials;

但是,我会担心将不同的问题混合到一个 class 中。在构造函数中调用 soap 服务等复杂工作可能不是最好的主意。因此,我可能建议拆分从代表序列号的 class 中获取序列号的组件。