小编Lev*_*kon的帖子

C#基于模型中的枚举属性将列表<model>转换为字典<enum,List <model >>?

不要混淆:如何在C#中将List转换为Hashtable?

我有一个模型列表,我想组织成一个散列表,其中枚举作为键,模型列表(具有枚举值)作为值.

public enum MyEnum
{
    Blue,
    Green
}

public class MyModel
{
    public MyModel(MyEnum myEnum, string foo, int bar)
    {
        this.MyEnum = myEnum;
        this.Foo = foo;
        this.Bar = bar;
    }

    public MyEnum MyEnum { get; set; }
    public string Foo { get; set; }
    public int Bar { get; set; }
}

List<MyModel> models = new List<MyModel>();

models.Add(new MyModel(MyEnum.Blue, "How", 1));
models.Add(new MyModel(MyEnum.Green, "Now", 2));
models.Add(new MyModel(MyEnum.Blue, "Brown", 3));
models.Add(new MyModel(MyEnum.Green, "Cow", 4));
Run Code Online (Sandbox Code Playgroud)

将列表转换为看起来像这样的哈希表的最简单方法是什么(原谅json):

{ 
   Blue:
   [
      { …
Run Code Online (Sandbox Code Playgroud)

c# linq generics lambda

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

C#最快的双向弦缩短

将字符串转换为数字和/或字母串,然后反向工程到原始字符串的最快和最佳性能方法是什么.类似于将字符串转换为哈希码,但这是单向转换.我需要一种双向方法.我正在创建一个简单的网址短片服务,我不想处理数据库.

我通过私钥考虑了MD5加密/解密,但我想还有另外一种可能在性能上更好的方法.

如果加密/解密是要走的路,那么处理器上哪个最容易?

谢谢!

.net c#

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

Orchard CMS多租户崩溃当心

我正在使用Orchard 1.4启用多租户.今天早上我添加了一个新租户,名字以4号"4wdcarsandtrucks"开头.好吧,在创建新租户后,我的所有网站都开始抛出404错误.查看日志,我发现每个帐篷都有以下条目:

2012-05-20 08:59:22795 [6] Orchard.Environment.DefaultOrchardHost - 租户不能启动:默认System.Xml.XmlException:名称不能与"4"的字符,十六进制值0x34开始.线16,在System.Xml.XmlTextReaderImpl.ParseQName(布尔isQName,的Int32开始偏移,的Int32&colonPos)在System.Xml.XmlTextReaderImpl.ParseElement(在System.Xml.XmlTextReaderImpl.Throw位置4(字符串RES,字串[] args) )在System.Xml.XmlTextReaderImpl.ParseElementContent()在System.Xml.XmlLoader.LoadNode(布尔skipOverWhitespace)在System.Xml.XmlLoader.LoadDocSequence(XmlDocument的parentDoc)在System.Xml.XmlDocument.Load(的XmlReader读取器)在系统. Xml.XmlDocument.LoadXml(字符串XML)在Orchard.Environment.Descriptor.ShellDescriptorCache.Fetch(字符串名称)在C:\ SRC\XXXXXX \主\ DOTNET\PUBLIC \果园\ v1.4.1.0\SRC \果园\环境\描述符\ ShellDescriptorCache.cs:线53在Orchard.Environment.ShellBuilders.ShellContextFactory.CreateShellContext(ShellSettings设置)在C:\ SRC\XXXXX \主\ DOTNET \公共\果园\ v1.4.1.0\SRC \果园\环境\ ShellBuilders\ShellContextFactory.cs:位于C:\ src\xxxxx的Orchard.Environment.DefaultOrchardHost.CreateAndActivateShells()中的第54行 x\main\dotnet\public\Orchard\v1.4.1.0\src\Orchard\Environment\DefaultOrchardHost.cs:第135行

根据手动删除帐篷的说明,我删除了App_Data\Sites中的站点文件夹,问题仍然存在.

我在果园根文件夹下搜索了"4wdcarsandtrucks"并在Media中找到了另一个文件夹.随着删除,租户名称的唯一剩余痕迹,问题仍然存在.我已经回收了应用程序池并重新启动了该站点.太奇怪了!

有没有人遇到这个问题或有任何建议吗?

orchardcms

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

MVC 3基于请求参数使用不同的控制器

过去几天我一直在网上寻找解决方案,而且我找不到多少.希望我没有使用正确的术语,这是一件容易的事情.

我想使用如下路径:

/{projectId}
Run Code Online (Sandbox Code Playgroud)

并且在生命周期的早期某处可以访问路径值字典,我可以查询数据库或会话对象以获取用于此请求的控制器名称.然后,能够指定要使用的控制器, route.Values["controller"] = controllerName;并通过该控制器与请求参数的所有爵士乐等进行请求.

可能吗?

我目前正在使用区域,并且有以下路径:

/ProjectType1/{projectId}
/ProjectType2/{projectId}
Run Code Online (Sandbox Code Playgroud)

但是我觉得处理所有人的领域Html.Link并且讨厌为每个项目类型定义新区域真的很头疼.我很想找到更有活力的东西.

model-view-controller asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas

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

最有效的方法是在没有循环的情况下连接列表中的列表

public class Unicorn
{
    public List<int> Numbers { get; set; }
}

unicorns.Add(new Unicorn() { Numbers = {1, 2, 3} } );
unicorns.Add(new Unicorn() { Numbers = {4, 5, 6} } );
unicorns.Add(new Unicorn() { Numbers = {7, 8, 9} } );
Run Code Online (Sandbox Code Playgroud)

c#4中最有效的方法是将所有列表连接成一个{1,2,3,4,5,6,7,8,9}列表?

优选地(理想地;优选地;如果有人选择的话)没有循环和Linq-less.我用.FindAll修补了,但它并没有挖掘它.

c# c#-4.0

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