![]() |
1
6
我不相信你的问题在于LINQ的速度,而是因为你打电话来
一个更好的办法可能是用一点理智来检查你在做什么。如果使用合理的输入(并且忽略换行符的可能性),那么您只需要测量字符串的文本,例如,在绝对最长(以字符数计)字符串的10%左右,然后使用最大值。换句话说,如果最大值是“古生物学”,那么测量字符串“foo”就没有意义。没有字体的宽度是可变的。 |
![]() |
2
6
它是
您可以将调用的结果缓存到
您可以计算一次值并与要显示的数据保持一致。每次更改数据时,都会重新计算值。这样,您就不必每次绘制控件时都测量字符串。 |
![]() |
3
4
步骤0:
轮廓。
假设您发现大多数执行时间确实在
比如……
如果我们对字符串的分布有更多的了解,那将会有所帮助。
也,
最后,最好的解决方案是根本不解决问题-也许您可以重新构造应用程序,使其不需要如此精确的数字-如果简单的估计足够,则可以避免
|
![]() |
4
1
不幸的是,看起来Linq不是你的问题。如果你跑了
您是否考虑在多个线程上运行此计算?它可以很好地与 Parallel LINQ .
编辑:
似乎并行LINQ不起作用,因为
|
![]() |
5
1
我猜问题不是linq表达式而是调用
我认为你可以通过把问题分成4个部分来解决非单空格字体的问题。
这不会产生一个完美的解决方案,但它将确保您至少为您的物品保留足够的空间,并避免调用的陷阱。
|
![]() |
6
0
如果你不知道怎么做
|
![]() |
7
0
您可能需要考虑取最长字符串的长度作为近似值,然后找到该长度的字符串的宽度
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |