我的C#.Net程序有一点问题...我有一个带有计数值的JSON文件,它指示我要存储到我的&#34;对象数组中的多少值&#34 ; ...读取该值后,我需要我创建的类的x个实例来存储值...问题是...我如何访问主窗体函数之外的那些实例,以便在我的一个事件中使用它们函数,因为我不能创建类的全局实例导致我的计数器在函数内部,即使它是全局的,我的主表单函数中还有其他操作需要在声明我的对象后立即执行... < / p>
这是代码......
public CurrencyForm()
{
InitializeComponent();
int count = 0;
var request = WebRequest.Create("https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json");
request.ContentType = "application/json; charset=utf-8";
string text;
var response = (HttpWebResponse)request.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
text = sr.ReadLine();
while (!text.Contains("count"))
{
text = sr.ReadLine();
}
count = CurrencyUtilities.getCount(text);
}
Currency[] currency = new Currency[count];
for (int i = 0; i < count; i++)
currency[i] = new Currency();
...
}
private void SelectCurrency1_onItemSelected(object sender, EventArgs e)
{
if (SelectCurrency1.selectedValue != "USD")
{
int i = 0;
//while (!currency[i].Name.Contains(SelectCurrency1.selectedValue))
// i++;
}
}
无论如何,先感谢任何人!
答案 0 :(得分:1)
在count
填充之前,您不知道List<T>
中的值,在这种情况下,您应该更喜欢private List<Currency> CurrencyList = new List<Currency>();
public CurrencyForm()
{
// Your logic here
while (!text.Contains("count"))
{
CurrencyList.Add(new Currency());
}
}
而不是数组,并且您应该将该变量保留在全局部分中,以便您可以轻松访问它们。
Say, I have a dataframe as below,
>>> df.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 1| 2|null|
|null| 3|null|
| 5|null|null|
+----+----+----+
>>> df1 = df.agg(*[F.count(c).alias(c) for c in df.columns])
>>> df1.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 2| 2| 0|
+----+----+----+
>>> nonNull_cols = [c for c in df1.columns if df1[[c]].first()[c] > 0]
>>> df = df.select(*nonNull_cols)
>>> df.show()
+----+----+
|col1|col2|
+----+----+
| 1| 2|
|null| 3|
| 5|null|
+----+----+
作为参考here,您可以找到有关List和数组比较的几点说明。
答案 1 :(得分:0)
您有两种选择:
List<Currency>
。这将作为具有可变长度的集合。您可以直接在类范围中创建它,然后从函数中添加元素。
示例:private List<Currency> CurrencyList = new List<Currency>();
。然后,您可以通过CurrencyList.Add (item);
我采用第一种方法,因为它更加精简。