gpt4 book ai didi

c# - .NET4.5下使用ArrayList进行转换

转载 作者:行者123 更新时间:2023-11-30 19:42:45 24 4
gpt4 key购买 nike

我有一个实用方法定义为

public static Dictionary<T, int> CountOccurences<T>(IEnumerable<T> items) { ... }

不幸的是,我有一些遗留代码使用了 ArrayList s 而不是 List<T> .现在,我需要转换 ArrayList使用上述方法和以下两种应该工作

var v = CountOccurences<String>(arrayList.Cast<String>().ToArray());

var v = CountOccurences<String>(arrayList.OfType<String>().ToArray());

这些都不能在 .NET 4.5 下的 VS2012 中运行

'System.Collections.ArrayList' does not contain a definition for 'OfType' and no extension method 'OfType' accepting a first argument of type 'System.Collections.ArrayList' could be found (are you missing a using directive or an assembly reference?)

但是,我已经在 LINQpad 中对此进行了测试,它们有效。 为什么我不能投我的 ArrayList ?

感谢您的宝贵时间。

最佳答案

以下在 VS2012 中对我来说效果很好

        ArrayList al = new ArrayList();

al.Add("a");
al.Add("b");
al.Add("c");

var v = al.OfType<string>().ToArray();

var list = new List<string>(v); //Constructor taking an IEnumerable<string>();

您收到什么错误消息。

确保包含以下命名空间

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

关于c# - .NET4.5下使用ArrayList进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853758/

24 4 0