小编Kja*_*tan的帖子

具有匿名类型的C#LINQ构建表达式

我有代码只使用一个属性"名称"构建列表.如何修改代码,以便它可以构建具有两个属性"Name"和"Test_Result"的列表我知道匿名类型可以用来执行此操作,但是如何将它们用于动态表达式?这是我的代码:

string item = "Name";
string item2 = "Test_Result";
Type studentType = typeof(Student);

ParameterExpression itemParam = Expression.Parameter(studentType, item);
MemberInfo itemProperty = studentType.GetProperty(item);

MemberExpression valueInItemField = 
    Expression.MakeMemberAccess(itemParam, itemProperty);

Expression<Func<Student, string>> selectExpression =
    Expression<Func<Student, string>>
        .Lambda<Func<Student, string>>(valueInItemField, itemParam);

IEnumerable<string> currentItemFields = 
    DeserializedStudents.Select(selectExpression.Compile());
Run Code Online (Sandbox Code Playgroud)

c# linq lambda expression

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

LINQ是否可以动态添加where子句

我想用不同的密钥搜索我的数据库.根据输入,10键可能有1个键.有没有办法动态地向我的Linq查询添加OR/AND子句?

 keys[k] // I have my keys in this array 
 var feedList = (from feed in ctx.Feed
                 where feed.content.contains(keys[0]) 
                       && feed.content.contains(keys[1])
                       && ... // continues with the keys.length
                 select new {
                    FeedId = feed.DuyuruId,
                    FeedTitle = feed.FeedTitle,
                    FeedContent = feed.FeedContents,
                    FeedAuthor = user.UserName + " " +User.UserSurname
 }
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework where-clause

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

为什么接口类型列表不能接受继承接口的实例?

给出以下类型:

public interface IPrimary{ void doBattle(); }

// an ISecondary "is" an IPrimary
public interface ISecondary : IPrimary {  }

// An implementation of ISecondary is also an IPrimary:
internal class SecondaryImpl : ISecondary
{
    // Required, since this is an IPrimary
    public void doBattle(){ }
}
Run Code Online (Sandbox Code Playgroud)

为什么我不这样做?

List<IPrimary> list = new List<ISecondary>();
Run Code Online (Sandbox Code Playgroud)

这会导致以下编译错误:

参数类型'System.Collections.Generic.List'的参数类型不可分配给参数类型'System.Collections.Generic.List'

我理解错误,我意识到有一些解决方法.我只是没有看到任何明确的原因,为什么不允许这种直接转换.包含在列表中的值ISecondary,应毕竟是(通过扩展)类型的值IPrimary然后被.为什么List<IPrimary>List<ISecondary>被解释为不相关的类型?

任何人都可以清楚地解释C#以这种方式设计的原因吗?

一个稍微扩展的例子:我在尝试执行类似以下操作时遇到了这个问题:

internal class Program
{
    private static void Main(string[] args)
    {
        // Instance of …
Run Code Online (Sandbox Code Playgroud)

c# types interface list

8
推荐指数
3
解决办法
5602
查看次数

如何在C#中将Int转换为时间?

我有整数值,如06,07,08,.....,16,17,18,...

我想将此整数值转换为24小时时间格式.

我正在做这样的事情

//fromTime holds one of the integer value.
DateTime fromTimeDate = DateTime.ParseExact(fromTime.ToString(), 
                                              "HH", 
                                              CultureInfo.InvariantCulture);  

string fromtimestring = fromTimeDate.ToString("hh:mm tt");
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

"字符串未被识别为有效的DateTime."

解析时.

我在这做错了什么.?

c# time datetime

8
推荐指数
2
解决办法
7万
查看次数

Xamarin.Forms错误(ADB0000:值不能为空)

这甚至意味着什么?我让我的程序运行并部署正常,然后第二天出现这个错误?

严重级代码说明项目文件行抑制状态工具错误ADB0000:值不能为空.参数名称:System.IO.Path.Combine上的path2(String path1,String path2,String path3)位于Xamarin.AndroidTools.PlatformPackage.GetVersionInfo(String frameworkVersion)的Xamarin.AndroidTools.PlatformPackage.GetPlatformPackageVersion(Int32 apiLevel,String&packageName)at at AndroidDeviceExtensions.d__33.MoveNext()---从抛出异常的上一个位置开始的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处(任务) AndroidDeviceExtensions.d__27.MoveNext()---在抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处. Xamarin.AndroidTools.AndroidDeploySession.d__101.MoveNext()中的HandleNonSuccessAndDebuggerNotification(任务任务)---从抛出异常的上一个位置开始的堆栈跟踪结束 ---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处于Xamarin.AndroidTools.AndroidDeploySession.d__99.MoveNext()
0的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

我试图关注在线YouTube教程(https://www.youtube.com/watch?v=eAZ4kPf5eTc),它运行正常,直到我收到此错误?

c# xamarin

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

WPF SystemColors:TextBox边框的颜色

我正在尝试使用嵌入式放大镜图标进行搜索TextBox.到目前为止,我有以下标记:

<Border DockPanel.Dock="Bottom" Margin="2,4,0,4" 
        BorderThickness="1" SnapsToDevicePixels="True" 
        BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}">
    <DockPanel>
        <StackPanel Orientation="Horizontal" DockPanel.Dock="Right">
            <Image Source="/Resources/search-13x13.png" Width="13"/>
        </StackPanel>
        <TextBox Name="searchTextBox" DockPanel.Dock="Bottom" BorderThickness="0" 
                 Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}"/>
    </DockPanel>
</Border>
Run Code Online (Sandbox Code Playgroud)

但是,我在SystemColors中找不到与标准TextBox边框颜色相同的条目.默认情况下,这是一种蓝色.我在这里真的很蠢吗?!?

编辑:顺便说一下,图像包含在堆栈面板中,因为我打算在其中放置一个下拉箭头.

wpf xaml styling

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

Java堆的大型NewSize使得进程长时间不受限制

我有java应用程序,它使特定的内存使用工作.我注意到,当我为年轻代开始使用几乎80%的堆设置应用程序时,我的应用程序的工作速度比使用默认的1:2设置快得多.特别是,我正在推出jvm:

java -XX:NewSize=10G -XX:+UseParallelOldGC -server -Xmx12G -Xms12G

服务器至少有14 Gb的可用物理内存,所以对于java堆和"其他"空间来说应该足够了.

现在发生的事情是这样的:

25.289: [GC [PSYoungGen: 7872317K->1058813K(9175040K)] 7872533K->1059029K(11272192K), 0.1876420 secs] [Times: user=1.92 sys=1.01, real=0.18 secs]
28.918: [GC [PSYoungGen: 8923133K->1091124K(9175040K)] 8923349K->1091340K(11272192K), 0.2206940 secs] [Times: user=1.92 sys=1.70, real=0.22 secs]
32.946: [GC [PSYoungGen: 8955444K->1060567K(9175040K)] 8955660K->1060783K(11272192K), 0.1804050 secs] [Times: user=2.86 sys=0.01, real=0.18 secs]
37.166: [GC [PSYoungGen: 8924887K->1080085K(8329344K)] 8925103K->1080301K(10426496K), 0.1891370 secs] [Times: user=3.08 sys=0.01, real=0.19 secs]
41.326: [GC [PSYoungGen: 8098709K->1088209K(8106880K)] 8098925K->1088425K(10204032K), 0.2284920 secs] [Times: user=3.49 sys=0.04, real=0.23 secs]
45.779: [GC [PSYoungGen: 8106833K->59784K(8672768K)] 8107049K->1039790K(10769920K), 0.2195770 secs] [Times: user=2.02 sys=1.91, …
Run Code Online (Sandbox Code Playgroud)

java performance garbage-collection

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

在JSP中编写URL

让我们说我目前的网址是: /app.jsp?filter=10&sort=name.

我在JSP分页组件,它应该包含类似的链接:
/app.jsp?filter=10&sort=name&page=xxx.

如何通过向当前URL添加新参数在JSP中创建有效的URL?我不想在JSP中使用Java代码,也没有与像URL结束:
/app.jsp?filter=10&sort=name&?&page=xxx/app.jsp?&page=xxx

java url jsp jstl el

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

如何插入SQL Server中的现有临时表

我试图将两个select语句执行到一个查询,将数据泵入临时表.第一个查询将有5列,而第二个查询只有一列.

第一个可以通过以下方式实现:

Select a.ID AS [a], 
       b.ID AS [b], 
       c.ID AS [c]
INTO #testingTemp
FROM
....
Run Code Online (Sandbox Code Playgroud)

现在我有第二个查询试图将数据输入#testingTemp:

Select z.ID AS [c]
INTO #testingTemp
FROM
....  
Run Code Online (Sandbox Code Playgroud)

但我的问题是There is already an object named #testingTemp in the database

我试图在互联网上搜索解决方案,但大多数人只是在我的第一部分面临问题,但显然没有人试图在第二次查询时扩展临时表?

sql sql-server temp-tables

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

Visual Studio参数化单元测试就像java一样

在java测试环境中我可以使用参数化单元测试,如下面的代码,

@RunWith(value = Parameterized.class)
public class JunitTest6 {

    private int number;

    public JunitTest6(int number) {
        this.number = number;
    }

    @Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };
        return Arrays.asList(data);
    }

    @Test
    public void pushTest() {
        System.out.println("Parameterized Number is : " + number);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么能在visual studio单元测试项目中做到这一点.我找不到参数化属性或这样的任何样本.

c# java tdd junit unit-testing

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