这是如何定义的?

时间:2013-05-13 20:46:08

标签: c# arrays

这是一个类属性数组还是属性类数组?我如何访问每一行而不是C#中的每个元素?谢谢!

public partial class AdvancedSearchResult {

    private SearchResults[] searchResultsField;

    /// <remarks/>
    **[System.Xml.Serialization.XmlElementAttribute("SearchResults")]
    public SearchResults[] SearchResults { <-------NOT SURE HOW TO DEFINE THIS
        get {
            return this.searchResultsField;
        }
        set {
            this.searchResultsField = value;
        }
    }**


public partial class SearchResults {

    private int dIDField;

    private bool dIDFieldSpecified;

    private int dRevisionIDField;

    ...............etc

3 个答案:

答案 0 :(得分:2)

首先,我会把你的课写得更短:

public partial class AdvancedSearchResult 
{
    [System.Xml.Serialization.XmlElementAttribute("SearchResults")]
    public SearchResults[] SearchResults 
    {
        get 
        set 
    }
}

其次,您可以指定值:

AdvancedSearchResult results = new AdvancedSearchResult();
results.SearchResults = new[]
{
    new SearchResults { ... },
    new SearchResults { ... },
    etc.
}

要检索值,您可以使用索引:

SearchResults firstResult = results.SearchResults[0];

或使用枚举器:

foreach(SearchResults sr in results.SearchResults)
{
    // Something with sr.
}

答案 1 :(得分:0)

如果我理解正确:

  1. 不要打电话给你的财产SearchResults,因为那是班级的 名称。称之为searchResults
  2. 像这样访问'行':searchResults[rowNumber]
  3. searchResultsField是一个数组,其中每个成员都是SearchResults类实例。事实上(事实上)你的财产也是如此。所以它是一个类实例数组

    要访问您媒体资源中的字段,您可以使用searchResults[rowNumber].fieldName(假设它们是公共字段)。

    由于您的评论 - 以下是一个简单的反思示例:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            MyClass myClass = new MyClass() { i = "a", j = "b" };
            FieldInfo[] infos = typeof(MyClass).GetFields();
            foreach (FieldInfo info in infos)
                Text += info.GetValue(myClass);
        }
    }
    
    
    class MyClass
    {
        public string i;
        public string j;
    }
    

    并添加到顶部:

    using System.Reflection;
    

答案 2 :(得分:0)

SearchResults是类AdvancedSearchResult的属性。它获取/设置名为searchResultsField的SearchResults项的私有数组。

按如下方式访问:

var result=new AdvancedSearchResult();

foreach(var item in result.SearchResults)
{  var myId= item.dIDField; 
   var isSpecified=item.dIDFieldSpecified;
   ...
}