相关疑难解决方法(0)

对集合进行排序并根据特定条件对结果进行排名

说我有以下内容

var searches = new ObservableCollection<Book>();
Run Code Online (Sandbox Code Playgroud)

searches 包含书籍对象

public class Book
{
    public string Title { get; set;}
    public string Desc {get; set;}    
}
Run Code Online (Sandbox Code Playgroud)

我想searches按匹配的字符串排序.首先,它Title根据搜索字符串从一开始的接近程度来检查排名Title.接下来,它检查Desc并根据搜索字符串从描述的开头出现的距离进行排序.

例如,如果我有

第1册
标题:ABC书名
说明:书1的描述

第2册
标题:书名仅
描述:第2 册的描述中有一个ABC

书3
标题:书名ABC
描述:ABC在开头

所以,请说搜索关键字是ABC,我想要searches排序,以便我得到以下内容.结果为包含标题中的搜索字符串的项目提供了更高的优先级.

第1册
标题:ABC书名
说明:书1的描述

书3
标题:书名ABC
描述:ABC在开头

第2册
标题:书名仅
描述:第2 册的描述中有一个ABC

如何使用LINQ实现这一目标?

c# linq sorting

10
推荐指数
3
解决办法
2770
查看次数

解决我的LIST中的职位排名?

考虑以下代码:

class Results
{
    public int playerId;
    public int score;
    public int section;
    public int position;
    public Results(int _playerId, int _score, int _section)
    {
        playerId = _playerId;
        score = _score;
        section = _section;
    }
}

public void RankMyResults()
{
    List<Results> myResultList = new List<Results>();

    myResultList.Add(new Results(1,232, 1));
    myResultList.Add(new Results(2,213, 1));
    // Add a lot of more results

    // Iteriate over the items to set the position
}
Run Code Online (Sandbox Code Playgroud)

我想将位置1设置为每个部分中的最高分,将位置2设置为第二个最高分,依此类推.

此外,如果两个人的得分相同,那么这些职位应该是这样的

Position  Score   PlayerId Section
1         135     23       1
1         135     43 …
Run Code Online (Sandbox Code Playgroud)

.net c# linq list

4
推荐指数
1
解决办法
2083
查看次数

标签 统计

c# ×2

linq ×2

.net ×1

list ×1

sorting ×1