问题列表 - 第30253页

List.Find <T>被认为是危险的吗?什么是更好的方法做List <T> .Find(Predicate <T>)?

我以前认为List <T>被认为是危险的.我的观点是,我认为默认(T)不是一个安全的返回值!许多其他人也这么认为考虑以下问题:

List<int> evens = new List<int> { 0, 2, 4, 6, , 8};
var evenGreaterThan10 = evens.Find(c=> c > 10);
// evenGreaterThan10 = 0 #WTF
Run Code Online (Sandbox Code Playgroud)

值类型的默认值(T)为0,因此返回0是goona以上代码段!
我不喜欢这个,所以我添加了一个名为TryFind的扩展方法,它返回一个布尔值并接受除Predicate之外的输出参数,类似于着名的TryParse方法.
编辑:
这是我的TryFind扩展方法:

public static bool TryFind<T>(this List<T> list, Predicate<T> predicate, out T output)  
{  
  int index = list.FindIndex(predicate);  
  if (index != -1)  
  {  
    output = list[index];  
    return true;  
  }  
  output = default(T);  
  return false;  
}  
Run Code Online (Sandbox Code Playgroud)

你有什么办法在通用名单上查找?

.net c#

9
推荐指数
2
解决办法
1万
查看次数

如何从UIView或UIWindow获取CGContextRef以调试外部draw方法?

[这是我在这里的第一篇文章(但我已多次浏览答案;感谢所有人提供的非常有用的网站).如果我对这篇文章犯下任何重大罪行,请原谅我并指出我正确的方向.]

我试图在我的iPhone应用程序中调试一些复杂的启动代码; 我真的需要绘制一些图像以使调试更具洞察力,并从根本上减少调试乏味.

我需要绘制的状态并不真正作为模型对象存在; 在初始化期间它有些短暂.我特别希望能够一次绘制一个状态,而不是在一个大图像中绘制所有状态(以帮助我看到哪些组件是对/错).在我的情况下,有很多可能重叠的东西,单个图像不能轻易,清楚地显示正在发生的事情.

如果我添加一个特殊的调试模式,以及导航/突出显示/绘制组件的其他控件,那么创建一个使用普通绘图架构绘制到屏幕的静态视图是可能的,但它需要很多不自然的脚手架,而不是,IMO,调试我的问题的正确方法.

所以,我希望做的是:

  1. 获取或创建适当的CGContextRef
  2. 画进去
  3. 立即将它冲到屏幕上
  4. 等待来自用户的一些输入,这不涉及UIEvents
  5. 多次重复1-4次

第4项似乎几乎是不可能的(有没有办法在iPhone或iPhone模拟器中运行简单的C或C++控制台I/O?),所以我现在已经放弃了它; 我决定只使用Xcode调试器在绘图操作之间停止.

但更感兴趣的是如何在UIView绘制方法之外获取CGContextRef,在该方法中绘制调试输出.缓存以前有效的上下文,即使在我的情况下是可能的(不可能,因为我在app启动时调试),似乎不起作用.似乎上下文可能会为每次绘图操作重新创建,这会让我感到很费劲; 我会假设一个UIWindow,也许是一个UIView,保存并可以提供对适当绘图上下文的引用.似乎我一定是错的(但如果没有,我如何从视图或窗口获取上下文?我没有找到相应的方法).

所以,如果我必须创建绘图上下文,我该怎么做?我想我真的不太明白上下文究竟是什么联系在一起的:它在多大程度上知道并绑定到某个特定的显示输出设备?如何控制上下文映射到屏幕的哪个部分?似乎很少有创建上下文的方法,它们似乎没有提供这样的控制.UIGraphicsBeginImageContext似乎是唯一可以帮助我的例程,我不知道如何创建和绘制成一个,只有生成一个CGImage才会有用; 如何将生成的图像输出到屏幕上?

我不会惊讶地发现我对与CG上下文相关的一些基本内容感到困惑.希望这个问题不是那么基本和明显,我会讨厌所有阅读它的人,但如果我完全错过了正确的文档,我会非常感谢一些指示.

感谢您的精神带宽和任何帮助.-罐

iphone debugging drawing

7
推荐指数
1
解决办法
7005
查看次数

WinDbg没有告诉我我的字符串在哪里扎根

我试图找出为什么字符串在我的应用程序中存储了这么长时间,并且吃掉了过多的内存.我有一个定期运行的Windows服务.

它从数据库中读取数据(以DataSet的形式),然后进行一些处理 - 所有托管的.NET.

Windows服务每5分钟左右触发一次,这会进行一些交叉引用.DataSet的每一行都不应该花费超过一秒 - 最糟糕的情况!

在一个阶段,私有字节> 1.2GB,即使没有可用于处理的数据.没有全局变量,所有处理都在各个方法中完成.

我拍了快照并用WinDbg处理.结果如下:

0:000> !dumpheap -min 85000
 Address       MT     Size
02027f40 00166620   101432 Free
28411000 79330b24 536870936     
48c11000 79333594 226273040     
08411000 79330b24 452546504     
total 4 objects
Statistics:
      MT    Count    TotalSize Class Name
00166620        1       101432      Free
79333594        1    226273040 System.Byte[]
79330b24        2    989417440 System.String
Total 4 objects
Run Code Online (Sandbox Code Playgroud)

所以我们想要找到引起问题的2个字符串:

0:000> !dumpheap -mt 79330b24  -min 85000
 Address       MT     Size
28411000 79330b24 536870936     
08411000 79330b24 452546504     
total 2 objects
Statistics:
      MT    Count    TotalSize Class Name
79330b24 …
Run Code Online (Sandbox Code Playgroud)

.net string memory-leaks windbg

11
推荐指数
1
解决办法
5788
查看次数

每当我更改其值时,如何阻止textarea滚动到顶部

我正在做一些textarea附加越来越多文字的东西.在firefox中,textarea每次都会向上滚动到顶部.我目前有一些东西喜欢textarea.scrollTop=1000000;在每次更改时将其向下滚动,但它仍然会在很短的时间内上升到顶部.有没有办法阻止它这样做?

javascript firefox textarea

6
推荐指数
1
解决办法
1306
查看次数

在ListBox中选择项目后,将光标设置在文本框上

当我在列表框中选择一个项目时,文本框中会填充所选文本进行编辑.如何让光标专注于文本框文本,以便在编辑之前不必用鼠标点击它?

c# textbox listbox cursor-position winforms

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

如何将值附加到oracle类型

如何将3或4个不同的值附加(插入)到oracle类型,然后再打开它以获取游标.

例如(伪):

insert into mytype select 1 from dual;
insert into mytype select 3 from dual;
insert into mytype select 5 from dual;

open cursor_1 for select * from table(mytype);
Run Code Online (Sandbox Code Playgroud)

这是可以在pl/sql中做到的吗?

我知道这是微不足道的,可以组合成一个查询,但我真正的需要是有不同的查询并继续将结果附加到mytype.

oracle plsql user-defined-types

2
推荐指数
1
解决办法
2万
查看次数

如何拦截来自网页的每个AJAX请求

我需要拦截来自页面的所有ajax请求的方法.所以我需要一些包装器来将我的数据添加到所有用户请求中.

javascript ajax wrapper intercept

7
推荐指数
1
解决办法
4706
查看次数

java:如何检查StringBuilder charcters以查看它是否包含与来自数组的新字符串请求相同的字符?

我想检查一个Java StringBuilder对象是否包含一个字符.

例如,我有一个数组中的食物列表{apple,pear,orange,peach,cherry},我想在StringBuilder中添加一些随机数量的食物类型.

我如何检查StringBuilder是否包含字符?

java

18
推荐指数
3
解决办法
4万
查看次数

PHP $ _SERVER ['SERVER_ADDR']变量始终返回127.0.0.1

我们有多个负载均衡的webserver机器运行相同的PHP webapp(LAMP),我想在每个服务器上运行稍微不同的代码(用于测试目的).我希望使用$_SERVER['SERVER_ADDR']超级全局来做这样的事情:

if ($_SERVER['SERVER_ADDR'] == 'XXX.XXX.XXX.XXX') {
  echo "Do one thing";
} elseif ($_SERVER['SERVER_ADDR'] == 'YYY.YYY.YYY.YYY') {
  echo "Do something else";
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为两台机器都设置$_SERVER['SERVER_ADDR']为' 127.0.0.1 '.如何配置它们以便$_SERVER['SERVER_ADDR']设置为其公共IP地址?

我猜这个问题可能与某些事情有关,/etc/hosts所以对于参考,它目前看起来像这样:

127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
XXX.XX.XX.XX    blahblah
Run Code Online (Sandbox Code Playgroud)

更新中...

哎呀!我忽略了在Web服务器前面考虑nginx反向代理.由于nginx conf中的以下行,所有到这些Web服务器的流量都来自nginx:

location / {
    root                  /var/www/staging/current;
    proxy_pass            http://localhost:8880;
}
Run Code Online (Sandbox Code Playgroud)

php linux lamp superglobals server-farm

3
推荐指数
1
解决办法
9153
查看次数

在CodeIgniter中重新路由页面时,如何防止重复内容?

假设我有一个控制器,"文章",但我希望它显示为子文件夹(例如"博客/文章"),我可以添加这样的路线:

$route['blog/articles'] = 'articles';
$route['blog/articles/(:any)'] = 'articles/$1';
Run Code Online (Sandbox Code Playgroud)

这工作正常,现在唯一的问题是,example.com/articles并且example.com/blog/articles都使用Articles控制器,因此解析为相同的内容.有办法防止这种情况吗?

为了让人们不理解,可以增加一点清晰度:

  • 在这个例子中,我没有'博客'控制器,但我希望'文章'等似乎在该子文件夹中(这是组织的事情).
  • 我可以有一个带有"文章"功能的博客控制器,但我可能会有一堆"子控制器",并希望将功能分开(否则我最终可能会为博客控制器中的单独实体提供30多个功能) .
  • 我想example.com/articles返回404,因为那不是正确的URL,example.com/blog/articles是.

routing controller codeigniter

3
推荐指数
1
解决办法
905
查看次数