c# - 如何在 C# 中访问另一个类中的列表

标签 c# xamarin

我对 C# 非常陌生,所以请忽略我对这个问题的无知。但我在网上搜索过,找不到有意义的解决方案。

基本上,我有一个列表存储在 CommonClass.CS 中,如下所示:

using System;
using System.Collections.Generic;

namespace NewParkingApp
{
    public class CommonClass
    {
        public List < string > itemData = new List < string > ()  
            {  
                "Android",  
                "IOS",  
                "Windows Phone",  
                "Xamarin-IOS",  
                "Xamarin-Form",  
                "Xamarin_Android"  
            };  

    }
}

然后,我希望能够从另一个类(class)访问该列表。这是我到目前为止所拥有的访问类:

using Foundation;
using System;
using System.Collections.Generic;
using UIKit;

namespace NewParkingApp
{
    public partial class ResultViewController : UIViewController
    {
        public ResultViewController (IntPtr handle) : base (handle)
        {
        }

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            List<string> itemData = CommonClass.itemData;
            mainListview.Source = new TableViewSource(itemData);  
        }

        public override void DidReceiveMemoryWarning()
        {
            base.DidReceiveMemoryWarning();
            // Release any cached data, images, etc that aren't in use.
        }
    }
}

此外,了解如何将项目添加到该列表也很有用。但我猜一旦我知道如何访问它,这应该很容易?

提前致谢!

最佳答案

在继续之前,您必须知道是否希望此列表在许多对象之间共享,或者对于 CommonClass 的每个实例唯一你创造。

正如评论中提到的:

  • 每个 CommonClass 都有一个唯一的列表实例更改 itemData使用实例化成员的分配:

    CommonClass commonClass = new CommonClass();
    List<string> itemData = commonClass.itemData;
    
  • 对于共享列表,请添加 static您类(class)的关键字 itemData像这样:

    public static List<string> itemData = new List<string>()

    另请注意 List类仅适用于一个线程操作(即在任何给定时间只有一个对象可以读取或写入列表),一旦开始处理多线程,您应该选择线程安全类型。

之后你就可以使用itemData.Add("whatever"); ,但实际上这可以很容易地在线检查。 Here's just one example at dotnetperls.com

关于c# - 如何在 C# 中访问另一个类中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347615/

相关文章:

c# - 有什么方法可以在 Xamarin.Forms 中将样式与我的 XAML 分开

android - 在 Xamarin 上使用来自 Android Studio 的 xml

c# - GetFields 返回空数组

c# - 替换字符串中最后一次出现的单词 - C#

c# - 系统.安全.SecurityException : Request for principal permission failed

c# - 自定义控件中的 WPF 数据绑定(bind)

c# - 在 visual studio 中构建错误

c# - 从 Xamarin 绑定(bind)调用 UIKit 方法

c# - 拆分列表的元素并仅从拆分中检索第一部分

c# - 如何将本地资源文件作为依赖项传递到 MediaPlayer.Create 中?