Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按单击次数最多的项目排序的列表框_C#_Algorithm_Listbox_Ranking - Fatal编程技术网

C# 按单击次数最多的项目排序的列表框

C# 按单击次数最多的项目排序的列表框,c#,algorithm,listbox,ranking,C#,Algorithm,Listbox,Ranking,以防万一有人已经实现了这一点或想要玩。这是一个有趣的小问题 我在找一个“收藏夹”列表框。项目将根据每个项目被选择(或单击)的次数实时重新排列 因此,最上面的项目就是点击次数最多的项目。最底层是点击最少的一个。只是为了踢,如果几个项目有相同的排名,他们是按字母顺序排序 祝你好运。这是一个可能的“项目”实施方案,它让那些早熟的点击者感到困惑。所有十几行半的代码 struct Entry { public string text; public int rank;

以防万一有人已经实现了这一点或想要玩。这是一个有趣的小问题

我在找一个“收藏夹”列表框。项目将根据每个项目被选择(或单击)的次数实时重新排列

因此,最上面的项目就是点击次数最多的项目。最底层是点击最少的一个。只是为了踢,如果几个项目有相同的排名,他们是按字母顺序排序


祝你好运。

这是一个可能的“项目”实施方案,它让那些早熟的点击者感到困惑。所有十几行半的代码

struct Entry
{
    public string   text;
    public int      rank;

    public Entry( string text, int rank )
    {
        this.text   = text;
        this.rank   = rank;
    }
}

List<Entry> ls = new List<Entry>();

...

void RankInsert( string text, int rank, int indexPrev )
{
    int insertAt = -1;

    for( int i = 0; i < this.Items.Count; i++ )
    {
        if( rank > ls[ i ].rank
            || ( rank == ls[ i ].rank
                 && string.CompareOrdinal( text, ls[ i ].text ) < 0 ) )
        {
            insertAt = i;
            break;
        }
    }

    if( indexPrev != -1 )
    {
        ls.RemoveAt( indexPrev );
        listbox.Items.RemoveAt( indexPrev );
    }

    insertAt = ( insertAt != -1 ) ? insertAt : ls.Count;

    ls.Insert( insertAt, new Entry( text, rank ) );
    listbox.Items.Insert( insertAt, text );
}
struct条目
{
公共字符串文本;
公共int等级;
公共条目(字符串文本,整数秩)
{
this.text=文本;
这个.等级=等级;
}
}
列表ls=新列表();
...
void RankInsert(字符串文本,int秩,int indexPrev)
{
int insertAt=-1;
for(int i=0;ils[i]。秩
||(秩==ls[i]。秩
&&string.CompareOrdinal(text,ls[i].text)<0))
{
insertAt=i;
打破
}
}
如果(indexPrev!=-1)
{
L.RemoveAt(indexPrev);
listbox.Items.RemoveAt(indexPrev);
}
insertAt=(insertAt!=-1)?insertAt:ls.Count;
ls.插入(插入,新条目(文本,等级));
listbox.Items.Insert(插入,文本);
}
如果重复项(错误地)标记为新项,则该方法将允许插入重复项。无论如何,这项检查应该在别处进行


希望对你有帮助。。。对编码感兴趣的人。而且,是的,我仍然对替代实现感兴趣。请随意。

我们不是来为您编写整个控件/项目的。这还不是问题,你们很有趣。把它读成“你会怎样…”我会怎样?我会制作一个程序!还是太宽了。诚然,这比“为我编写这个复杂的项目”要好,但即使实现很小,“我如何制作X程序/控制”也不是一个好问题。“我会制作一个程序”几乎是这里所有问题的答案。你们太认真了。