通过坐标查找字符串的索引

Finding index of a string through coordinates

我正在为 Windows 控制台项目开发一个屏幕,并且一直在努力解决以下问题。

场景:

我在猜测光标在字符串的什么位置。

示例:

如果我将光标移动到随机位置 (3,16) 我希望能够计算出相应的 index/position 字符串。

我尝试了不同的公式,欧氏距离在这里不起作用,因为字符串一行一行。 这个功能我已经从头开始好几次了,现在又要从0开始了。

如果有人能就我应该使用的公式向我提出建议,我将不胜感激

public static int GetStringIndex(int startX, int startY, string text)
        {
            int index = -1;
            int currentX = Console.CursorLeft;
            int currentY = Console.CursorTop;


            return index;
        }

如果我没理解错的话,这就是你想要的:

int current = currentX + currentY * Console.BufferWidth;
int start = startX + startY * Console.BufferWidth;

return start <= current && current < start + text.Length ? current - start : -1;

当您将控制台想象成一个大的一维数组时,这很容易。