小编Jar*_*Par的帖子

将bool条件传递给我可以在需要时调用的方法

我需要传入一个谓词,我可以随时调用它(就像委托一样).我正在尝试做这样的事情(我认为Predicate委托会满足我的需求):

MyMethod(Predicate,string> pred);
Run Code Online (Sandbox Code Playgroud)

被称为: MyMethod(s => s.Length > 5);

我想写内联条件但是在我想要的时候调用它,就像委托一样.我怎么能这样做?

谢谢

c#

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

我应该使用ArrayList还是IList

我使用.NET框架1.1,我希望有人可以帮我实现动态的对象数组?

我希望使用的对象的淡化示例如下.

Class CarObj
{
   public string CarName;
   public string CarYear;
}
Run Code Online (Sandbox Code Playgroud)

我应该使用ArrayList还是你认为制作一个CarList类来实现IList接口会更好?一个人对另一个人有性能上的好处吗?

c# ilist arraylist

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

CLR如何处理C#中的extern方法调用

我想问为什么所有的extern方法调用都是静态的?CLR如何处理这些调用?

c# c#-3.0

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

通用Linq订购功能?

我希望能够传入一个Func <T,?>,它允许我精确地选择如何对项目列表进行排序......我遇到的问题是返回类型可能会有所不同......所以例如我想要做这样的事情(不是生产代码):

Func<POline, string> poLineOrder
if (option) poLineOrder = poline => poline.PartNumber;
else poLineOrder = poline => poline.LineOrder;
var orderedLines = poLines.OrderBy(poLineOrder);
Run Code Online (Sandbox Code Playgroud)

这里的问题是,虽然PartNumber是一个字符串,但LineOrder是一个int,并且此代码不能编译.我有一种感觉,我将不得不构建一个表达式(?),但我似乎无法正确的语法.

(是的,我可以通过使用poline.LineOrder.ToString("D10")解决这个问题,但我在这里问更一般的问题...谢谢!)

-mdb

c# linq lambda

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

每个MSDN的OrderByDescending(),这究竟是什么意思?

有人可以帮忙分开这里的元素,帮助我理解它们是什么吗?

public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector
)
Run Code Online (Sandbox Code Playgroud)

什么是TSource和TKey?什么是keySelector?什么是IOrderedEnumerable?

Func <>做什么?

为什么MSDN如此神秘?

c# linq msdn linq-to-sql

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

GDB 回溯中的“this”指针变化

我正在检查核心转储,并注意到在一帧中的“this”指针与下一帧(在同一线程中)不同。不仅仅是有点不同,它从 0x8167428 变为 0x200。

我不太熟悉使用 GDB,但这对我来说似乎不正确。这是否有问题,如果有,可能是什么原因?

c++ debugging gdb

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

C#Regexp:如何从匹配中提取$ 1,$ 2变量

目前.NET使用他们自己的非标准捕获组命名约定,这是一种狗.我想在C#中启用标准使用$ 1,$ 2捕获组.

他们的任何方式,或者如果没有,是他们可以使用的任何第三方正则表达式引擎,它们实现了这种功能.

.net c# mono c#-3.0

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

VS2010中的单元测试3.5项目产生CS1685警告

我有一个面向.NET 3.5的开发项目.我没有选择这个,因为公司的大假发不会让我们以4.0为目标.我在Visual Studio 2010中为解决方案添加了一个新的测试项目.我看到我只能从测试项目中定位4.0 Framework(这是可以的,因为它没有部署).

除了我从我的测试项目中收到编译器警告之外,一切都很棒:

警告CS1685:预定义类型'System.Action'在全局别名中的多个程序集中定义; 使用'c:\ Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Core.dll'中的定义

我从测试项目中删除了对System.Core的引用,警告仍在进行中.我只能假设这是因为我正在测试的项目是针对3.5的,所以有些东西正在被越过.在我们的应用程序中获得批准目标4.0之前,是否有清除方法来消除此警告?

unit-testing visual-studio-2010 visual-studio

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

无法将其转换为VB.net

我正在尝试将以下内容转换为vb.net.提前致谢

   Categories.DataSource = objDT.Rows.Cast<DataRow>()
        .Select(r => new { Attendee = r.Field<string>("Attendee"), Item = r.Field<string>("Item") })
        .GroupBy(v => v.Attendee)
        .Select(g => new { Attendee = g.Key, Item = g.ToList() });
Run Code Online (Sandbox Code Playgroud)

这是我卡住的地方,我尝试了两种不同的方法,但仍然无效:

Categories.DataSource = objDT.AsEnumerable() _
    .Select(Function(r) New With {.Attendee = r.Field(Of String)("Attendee"), .Item = r.Field(Of String)("Item")}) _
    .GroupBy(Function(v) v.Field(Of String)("Attendee")) _
    .Select(Function(g) Attendee = g.Key)
Run Code Online (Sandbox Code Playgroud)

要么

Categories.DataSource = objDT.Rows.Cast(Of DataRow)().AsEnumerable _
    .Select New Object(){ Function(r As DataRow) Attendee = r.Field(Of String)("Attendee"), Item = r.Field(Of String)("Item")} _
.GroupBy( Function(v) v.Category) _
.Select( …
Run Code Online (Sandbox Code Playgroud)

c# linq vb.net c#-to-vb.net

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

MSTEST-断言失败后继续

我想知道在断言失败之后是否有一种简单的方法来完成测试。我们曾经使用Galileo进行所有自动化测试,但是我们已经移走了Visual Studio Test框架。我们有一种方法可以使测试失败,但可以继续进行。

        public static bool DoAssertAndContinue(Action assert)
    {
        try
        {
            assert();
            return true;
        }
        catch (AssertionException ae)
        {
            ConfigContext.WriteLine(ae.Message);
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我们之前使用过的...它将被这样称呼:

assertionResults.Add(Automation.Utils.CommonMethods.DoAssertAndContinue(() => Assert.IsTrue(detail.ValidateName(boo, urns))));
Run Code Online (Sandbox Code Playgroud)

我只是试图找出最好的方法来模拟我们以前所拥有的,而不必重构所有测试。

mstest visual-studio-2010 visual-studio

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