让我们以这种n层深层结构为例:
public class SomeItem
{
public Guid ID { get;set; }
public string Name { get; set; }
public bool HasChildren { get;set; }
public IEnumerable<SomeItem> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我希望得到的ID(在任何地方结构)的特定项目是有一些LINQ上帝,我可以用它来轻松搞定它在单个语句或做我必须如下使用一些递归函数:
private SomeItem GetSomeItem(IEnumerable<SomeItem> items, Guid ID)
{
foreach (var item in items)
{
if (item.ID == ID)
{
return item;
}
else if (item.HasChildren)
{
return GetSomeItem(item.Children, ID);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 我有一个用c#编写的程序,其中有一些int和字符串之间的比较.
因此,出于性能原因,我想知道哪个更有效?
如果我们有:
int a = 5;
string b = "5";
if(a == int.Parse(b)) { }
Run Code Online (Sandbox Code Playgroud)
要么
if(a.ToString() == b) { }
Run Code Online (Sandbox Code Playgroud) 我使用.NET 4.0和Sockets使用hybi-17规范构建了一个WebSocket聊天服务器.如果浏览器连接到端口81上的聊天服务器,则一切都按预期运行.但是由于公司防火墙等 - 我需要浏览器连接到端口80,因为这需要全世界的每台PC都可以访问.
所以我使用IIS 7作为反向代理.我已经设法让浏览器连接到IIS 7上的ws:// localhost/chatProxy,然后将请求代理到http:// localhost:81/chatProxy,其中websocket服务器正在侦听.
Websocket服务器执行握手并为连接创建套接字,然后返回到侦听状态.
问题是,在客户端,websocket"onopen"事件永远不会被触发.就好像IIS不会将请求发送回浏览器一样.
任何帮助将受到高度赞赏!
提前致谢!!