我有代码只使用一个属性"名称"构建列表.如何修改代码,以便它可以构建具有两个属性"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) 我想用不同的密钥搜索我的数据库.根据输入,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) 给出以下类型:
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) 我有整数值,如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."
解析时.
我在这做错了什么.?
这甚至意味着什么?我让我的程序运行并部署正常,然后第二天出现这个错误?
严重级代码说明项目文件行抑制状态工具错误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),它运行正常,直到我收到此错误?
我正在尝试使用嵌入式放大镜图标进行搜索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边框颜色相同的条目.默认情况下,这是一种蓝色.我在这里真的很蠢吗?!?
编辑:顺便说一下,图像包含在堆栈面板中,因为我打算在其中放置一个下拉箭头.
我有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) 让我们说我目前的网址是:
/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等
我试图将两个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?
我试图在互联网上搜索解决方案,但大多数人只是在我的第一部分面临问题,但显然没有人试图在第二次查询时扩展临时表?
在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# ×6
java ×3
linq ×2
datetime ×1
el ×1
expression ×1
interface ×1
jsp ×1
jstl ×1
junit ×1
lambda ×1
list ×1
performance ×1
sql ×1
sql-server ×1
styling ×1
tdd ×1
temp-tables ×1
time ×1
types ×1
unit-testing ×1
url ×1
where-clause ×1
wpf ×1
xamarin ×1
xaml ×1