C# 数组转换

标签 c# .net arrays

因为我是 C# 菜鸟,所以这里有任何帮助。以下代码工作正常并返回 1 个字符串 ViewState2。我希望它返回一个 ViewState2 和 EventValidation2 数组,以便稍后可以对其进行操作。我如何将下面的代码转换为返回数组?

    public string get_status(string local_fname)
    {
        var dts_doc = new HtmlAgilityPack.HtmlDocument();
        dts_doc.Load(local_fname);

        //Pull the values
        var ViewState = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/input[4]/@value[1]");
        var EventValidation = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[2]/input[1]/@value[1]");

        string ViewState2 = ViewState.Attributes[3].Value;
        string EventValidation2 = EventValidation.Attributes[3].Value;


        //Display the values

        //System.Console.WriteLine(ViewState.Attributes[3].Value);
        //System.Console.WriteLine(EventValidation.Attributes[3].Value);
        //System.Console.ReadKey();
        return ViewState2;
    }

最佳答案

不要使用数组,而是使用类。这样做,您不必记住每个元素的含义。

public class Status
{
  public string ViewState {get; set;}
  public string EventValidation {get; set;}
}

using System;
using HtmlAgilityPack;

[...]

public Status GetStatus(string localFileName)
{
    var dtsDoc = new HtmlDocument();
    dtsDoc.Load(localFileName);

    //Pull the values
    var viewStateNode = dtsDoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/input[4]/@value[1]");
    var eventValidationNode = dtsDoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[2]/input[1]/@value[1]");

    string viewState = viewStateNode.Attributes[3].Value;
    string eventValidation = eventValidationNode.Attributes[3].Value;


    //Display the values

    //Console.WriteLine(viewState);
    //Console.WriteLine(eventValidation);
    //Console.ReadKey();
    return new Status
    {
      ViewState = viewState,
      EventValidation = eventValidation
    }
}

此外,您应该阅读 C# 语言中的编码指南和命名约定,using 语句也可能很有趣。我已经纠正了一些“错误”,但可能没有全部纠正。另外,我重命名了几个变量,使它们的内容更清晰。您可能还想考虑仅在循环中使用 var 关键字,同时使用 LINQ(或一般的匿名类型)或使用非常长的类名。写出类型名称可以大大提高可读性。

关于C# 数组转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4001119/

相关文章:

c# - HasMorePages 不工作。设置该位会导致在同一页上打印所有项目

c# - 使用 C# 的 ms Access 查询中指定的强制转换不是有效异常

c# - C# 中线程的处理(死锁)

iphone - iOS 中数组的快速比较

java - 抽象类错误 : Exception in thread "main" java. lang.NullPointerException

c# - 将数据库上下文注入(inject) Hangfire 重复作业的正确方法是什么?

c# - 委托(delegate)的组成(功能陷阱)

c# - 正数和负数的正则表达式 int 值由空格分隔

.net - 贝塞尔曲线算法 - 也许是规范样条曲线?

javascript - typescript :空数组的长度不为零