我在面试(C#3.0)中被要求提供一个逻辑来从列表中删除项目列表.
我回答了
int[] items={1,2,3,4};
List<int> newList = new List<int>() { 1, 2, 3, 4, 5, 56, 788, 9 };
newList.RemoveAll((int i) => { return items.Contains(i); });
Run Code Online (Sandbox Code Playgroud)
1)面试官回答说,我采用的算法会逐渐花费时间,如果项目增长,并要求我提供更好,更快的算法.什么是有效的算法?
2)如何使用LINQ实现相同的目标?
3)他让我提供一个双向关闭的例子?(一般我知道关闭,什么是双向关闭?,我回答说没有这样的术语存在,但他并不满足).
大家好.
我正在研究一些通过Zeep Mobile发送/接收SMS消息的代码(http://zeepmobile.com/developers/).
我看过他们的谷歌小组,甚至联系了他们的支持,但他们不善于沟通,我现在真的失明了.
我必须与它们集成(工作需要它),我不确定为什么我的代码不起作用.所以,我想知道是否有人在那里有任何C#.Net代码他们不介意共享,以便我可以将其集成到我的应用程序中.
当然,这完全取决于您是否有使用Zeep的经验.如果你想让我发布我的代码,我也可以这样做.让我知道.
谢谢,我真的很感激帮助.
**
**
请原谅邋code的代码.它只是我扔在一起测试Zeep的东西,我希望有人可以试一试.(.Net 3.5控制台应用程序,以防你想要构建它).
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Net.Security;
using System.Web;
using System.Web.Handlers;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
namespace ConsoleApplication1
{
class Program
{
public static string API_KEY = "MY_API_KEY";
public static string SECRET_ACCESS_KEY = "MY_SECRET_KEY";
public static string PATTERN_RFC1123 = "ddd, dd MMM yyyy HH:mm:ss " + "GMT";
static void Main(string[] args)
{
// URL for sending …Run Code Online (Sandbox Code Playgroud) 在调试期间,我试图查看StringBuilder的内容以便可视化它.我使用大量的HTML,我希望能够像在VS 2008中那样在HTML模式下查看内容.
正如您在附图中看到的那样,在2008年,我可以非常轻松地在我想要的行上的调试器中获得html模式.在2010年,我必须调用ToString()方法才能获得相同的能力.
我怎样才能在2010年获得2008年的能力?

谢谢.
假设我有一个类(例如,简化),我想确保总是填充PersonId和Name字段.
public class Person
{
int PersonId { get; set; }
string Name { get; set; }
string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
目前我的查询是
Person p = conn.Query<Person>("SELECT * FROM People");
Run Code Online (Sandbox Code Playgroud)
但是,我可能已经将我的数据库模式从PersonId更改为PID,现在代码将会很好地完成.
我想做的是以下之一:
使用诸如Required之类的属性装饰属性PersonId(该dapper可以验证)
告诉dapper弄清楚映射没有完全填满(即,当查询中的数据没有填写类中的所有属性时抛出异常.)
这目前可能吗?如果没有,有人能指出我如何在不影响性能的情况下做到这一点吗?
恕我直言,第二个选项是最好的,因为它不会破坏用户的现有代码,并且它不需要在我们可能无法访问的类上更多的属性修饰.
我有一个名为Branch的父对象中包含的地址列表.分支可能会也可能不会定义这些地址,我需要获得一个扁平的层次结构或这些分支和地址.
var x = from p in CurrentBranchList
where p.ScheduledForDeletion == false
from c in p.Addresses
where c.ScheduledForDeletion == false && c.AddressTypeId == 3
select new
{
BranchId = p.BranchId,
Name = p.Name,
Address = (c == null) ? "" : c.Address1 + " " + c.Address2,
City = (c == null) ? "" : c.City,
State = (c == null) ? 0 : c.StateId
};
Run Code Online (Sandbox Code Playgroud)
以上就是我尝试的但是如果地址丢失了,我得不到关于分支的信息...我还在试图弄清楚如何使用Linq.在SQL中我会离开加入两个表来获取该信息.
任何人都可以帮助我...我相信这是一件非常容易的事情.谢谢.PS.我知道这非常相似(Linq查询返回父子项的已分级列表)但在该项中,子项始终存在.
编辑 - 工作解决方案 以下代码似乎对我有用.我不能反对源数据库,因为CurrentBranchList中包含的对象是在内存中编辑的,并且持久性是在单个操作中执行的.
var x = from p in …Run Code Online (Sandbox Code Playgroud) 我正在尝试在.Net中实现缓存,这样缓存的数据不仅可以由可以在同一台机器上运行多次但可以在机器上运行的其他类型的应用程序运行的应用程序访问.它们可以是Windows服务,Web服务,赢取表单等.
我已经看过System.Runtime.Caching(因为企业应用程序块缓存将变得过时)作为实现这一目标的手段.默认的MemoryCache不足以实现这一点,因为我认为它不适用于应用程序域.
有没有办法可以实现我正在寻找的那种缓存,或者是否有某种缓存dll(必须是免费的)可以用来实现我的目标?
有没有办法使用System.Sruntime.Caching与IsolatedStorage作用于MachineLevel?
我也看过memcache并且无法使用它,因为我们需要在windows机器上运行它.我开始关注SharedCache(http://www.codeproject.com/KB/web-cache/AdvanceCaching.aspx),并对它所带来的陷阱感到好奇.
谢谢.
- 修订1 -
我认为对我来说最佳解决方案是将Caching对象用于内存映射文件(http://msdn.microsoft.com/en-us/library/dd997372.aspx).所以我现在的问题是是否有人使用System.Runtime.Caching对象完成了这个.必要时必须有一种方法来扩展它...如何这样做的例子也将非常感激.