在经典的asp中对数组进行分组?

时间:2010-01-26 11:55:44

标签: vbscript asp-classic

我在ASP中有一个如下所示的数组:

3,5,7,7,3,2,3

我想要做的是将它们与计数分组,这样我就可以:

Number  Count
2       1
3       3
5       1
7       2

这可能吗?如果是这样的话?

3 个答案:

答案 0 :(得分:7)

在asp-classic中没有关联数组..

替代方案是Scripting.Dictionary

所以

<%
    dim ar
    ar = array(3,5,7,7,3,2,3)

    dim dictArray

    set dictArray = server.CreateObject("Scripting.Dictionary")

    for each i in ar
        if dictArray.exists( i ) then
            dictArray(i) = dictArray(i) + 1
        else
            dictArray(i) = 1
        end if
    next
%>

这创造了你想要的东西......现在就看到它

<%
    for each i in dictArray
        response.write( i & " : " & dictArray(i) & "<br />")
    next
 %>

答案 1 :(得分:0)

这是C#

中的一个例子
public Dictionary<int, int> SortList(string text)
{
    Dictionary<int, int> sortedArray = new Dictionary<int, int>();
    List<int> array = new List<int>() { 1, 2, 2, 2, 5, 4 };

    for (int i = 0; i < array.Count; i++)
    {
        if (DoesExsist(sortedArray, array[i]))
        {
            sortedArray[array[i]]++;
        }
        else
        {
            sortedArray.Add(array[i], 1);
        }
    }

    return sortedArray;
}

private bool DoesExsist(Dictionary<int, int> array, int keyvalue)
{
    foreach (KeyValuePair<int, int> item in array)
    {
        if (item.Key == keyvalue)
        {
            return true;
        }
    }

    return false;
}

尚未测试过。但是应该工作,或者至少给你一个想法。

答案 2 :(得分:0)

你需要在VBScript中使用二维数组; http://www.4guysfromrolla.com/webtech/041101-1.2.shtml这将是@Eibx建议的Dictionary<int, int>的表示。