这是怎么定义的?
本文关键字:定义 | 更新日期: 2023-09-27 18:13:36
这是一个类属性数组还是一个属性类数组?我如何在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
首先,我要把你的类写得短一点:
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.
}
如果我理解正确:
- 不要把你的属性命名为
- 像这样访问"行":
searchResults[rowNumber]
.
SearchResults
,因为那是类的名字称之为searchResults
。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;
SearchResults是类AdvancedSearchResult的属性。它获取/设置名为searchResultsField的SearchResults项的私有数组。
按如下方式访问:
var result=new AdvancedSearchResult();
foreach(var item in result.SearchResults)
{ var myId= item.dIDField;
var isSpecified=item.dIDFieldSpecified;
...
}