C#插入一个变量
本文关键字:一个 变量 插入 | 更新日期: 2023-09-27 17:59:04
我有这段代码,其中有一个arrayList。我使用arrayList方法。包含。
if (arrayList2.Contains(5))
{
//something
}
我想用一个包含值arrayList2的变量(例如字符串)替换代码中的arrayList2。
string hello = "arrayList2" // create a varible with the value of the name of the arrayList
if (hello.Contains(5)) // insert the variable "hello" instead of "arrayList2"
{
//something
}
这个方法不起作用,有什么想法可以让它发挥作用吗?
我试着猜一下这个。
也许你想要这样的东西:
Dictionary<string, ArrayList> arrayLists = new Dictionary<string, ArrayList>();
arrayLists.Add("arrayList1", new ArrayList());
arrayLists.Add("arrayList2", new ArrayList());
arrayLists.Add("arrayList3", new ArrayList());
string hello = "arrayList2";
if (arrayLists[hello].Contains(5)) { }
如果我能准确理解你的问题,也许这就是的答案
public List<int> arrayList = new List<int>();
private void test()
{
arrayList.Add(5);
object[] parameters = { 5 };
var your_arraylist= this.GetType().GetField("arrayList").GetType();
var your_arraylist_method = your_arraylist.GetMethod("Contains");
}
您将ArrayList上的Contains()方法与String的Contains()方法混淆了——虽然它们有相同的名称,但它们做的事情不同。
ArrayList myArrayList = new ArrayList();
object myObject = new object();
if(myArrayList.Contains(myObject))
{
..
}
在这种情况下,Contains()接收一个对象,并测试ArrayList是否包含该对象。
在你正在做的第二个例子中:
String myString = "Hello my name is Chris";
if(myString.Contains("my name"))
{
..
}
在这种情况下,Contains()接收一个字符串,并测试myString是否在序列中包含这些字母。
您的代码无法编译,因为if (hello.Contains(5))
正在尝试测试该字符串中是否存在整数。你好Contains("5")会起作用——尽管我猜这仍然不是你想要的。
看起来你有一个php经验,并试图实现这样的东西:
private static ArrayList arrayList;
static void Main(string[] args)
{
arrayList = new ArrayList{1,2,3,4,5};
var hello = "arrayList";
var fieldInfo = typeof(Program).GetField(hello, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance);
dynamic dyn = fieldInfo.GetValue(null);
Console.WriteLine(dyn.Contains(5));
}
如果是这样的话,这在C#中是不适用的——即使C#4.0允许做上面的事情,你也不能这样做。