gpt4 book ai didi

c# - 排序矩形列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:11:50 26 4
gpt4 key购买 nike

我想按照它们在找到它们的页面上出现的顺序列出一个单词列表。 (如果是这种情况,包括多行)

the quick brown
fox jumped

我有一个包含单词文本的自定义 Word 对象列表,它的左、右、上和下值,(0, 0) 是左上角页面。

words.Add(new Word() { text = "the", box = new rectangle() { left = 10, right = 30, top = 10, bottom = 21 } );
words.Add(new Word() { text = "brown", box = new rectangle() { left = 65, right = 95, top = 11, bottom = 20 } );
words.Add(new Word() { text = "jumped", box = new rectangle() { left = 36, right = 64, top = 26, bottom = 38 } );
words.Add(new Word() { text = "quick", box = new rectangle() { left = 35, right = 60, top = 11, bottom = 24 } );
words.Add(new Word() { text = "fox", box = new rectangle() { left = 10, right = 30, top = 25, bottom = 35 } );

internal class Word
{
internal Rectangle box { get; set; }
internal string text { get; set; }
}

我可以通过按左边界排序轻松地对单行进行排序,但是 2 行会伤到我的大脑。

最佳答案

LINQ 中使用 OrderBy 然后使用 ThenBy , 它将按 X 位置排序,然后按 Y 位置排序。

List<Word> sortedWords = words.OrderBy(w => w.box.Left).ThenBy(w => w.box.Top).ToList();

关于c# - 排序矩形列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com