C# 中的静态列表
Static List in C#
我正在尝试做这样的事情:
public static class A
{
public static readonly List<string> alist = new List<string>()
{
//some big data about 70 rows
};
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata; //OK
string s2 = A.alist.Find("sth") //No such list! Even Intellisense can't find it after pressing A.
}
你能告诉我如何将列表用作静态吗?
提前致谢...
编辑:问题不是我传入的 Find 方法或参数。问题是我无法从 B class 中访问列表。对不起我的英语
你应该这样做
public static class A
{
public static readonly List<string> alist = new List<string>()
{
//some big data about 70 rows
}
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata;
string s2 = A.alist.FirstOrDefault(s=>s==A.astruct.adata);
string s3 = A.alist.FirstOrDefault(s=>s==s1);
}
您遇到无法将 string
转换为 System.Predicate<string>
的错误。
这意味着,您需要对 Find() 使用以下语法:
string s2 = A.alist.Find(x => x == adata);
请尝试以下代码。
它可能对你有用。
使用谓词从列表中查找元素。
public static class A
{
public static readonly List<string> alist = new List<string>
{
//some big data about 70 rows
};
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata;
string s2 = A.alist.Find(m => m.Equals(A.astruct.adata));
}
我正在尝试做这样的事情:
public static class A
{
public static readonly List<string> alist = new List<string>()
{
//some big data about 70 rows
};
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata; //OK
string s2 = A.alist.Find("sth") //No such list! Even Intellisense can't find it after pressing A.
}
你能告诉我如何将列表用作静态吗?
提前致谢...
编辑:问题不是我传入的 Find 方法或参数。问题是我无法从 B class 中访问列表。对不起我的英语
你应该这样做
public static class A
{
public static readonly List<string> alist = new List<string>()
{
//some big data about 70 rows
}
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata;
string s2 = A.alist.FirstOrDefault(s=>s==A.astruct.adata);
string s3 = A.alist.FirstOrDefault(s=>s==s1);
}
您遇到无法将 string
转换为 System.Predicate<string>
的错误。
这意味着,您需要对 Find() 使用以下语法:
string s2 = A.alist.Find(x => x == adata);
请尝试以下代码。 它可能对你有用。
使用谓词从列表中查找元素。
public static class A
{
public static readonly List<string> alist = new List<string>
{
//some big data about 70 rows
};
public struct astruct
{
public const string adata = "a data";
}
}
public class B
{
string s1 = A.astruct.adata;
string s2 = A.alist.Find(m => m.Equals(A.astruct.adata));
}