对于每一个独特的GroupId,我想获得的每一个计数IsGreen,IsRound,IsLoud条件和行的总数.
样本数据:
-----------------------------------------------------
id | ItemId | GroupId | IsGreen | IsRound | IsLoud
----+--------+---------+---------+---------+---------
1 | 1001 | 1 | 0 | 1 | 1
2 | 1002 | 1 | 1 | 1 | 0
3 | 1003 | 2 | 0 | 0 | 0
4 | 1004 | 2 | 1 | 0 | 1
5 | 1005 | 2 | 0 | 0 | 0
6 | …Run Code Online (Sandbox Code Playgroud) 在使用Visual Studio调试混合的WPF/CLR/Unmanaged本机c ++项目时,我遇到了一个有趣(相当恼人)的错误,此错误仅在Windows XP中发生.似乎我在程序中发生了内存损坏,其范围太大而无法在此处发布.我遇到的问题是,当程序中发生崩溃时,它只是在没有VS调试器试图找到异常的情况下退出,我假设因为没有抛出异常.程序退出代码实际上是我必须继续的唯一信息,它只是最小的int值.
有没有人遇到过这个问题,并且可能能够指出我的方向是什么意思?
编辑:
继续调查这个问题,我发现我有时可以获得堆栈跟踪和异常,而不是直接的程序退出.跟踪将我带到矢量分配(推送).在程序刚刚退出的情况下,这仍然是执行的最后一行.我假设我在某个地方有腐败的记忆,虽然我希望这通常表现为程序转储而不是例外这一事实能够帮助我指出正确的方向.
我在方法语法中有以下LINQ表达式
IEnumerable<PageElement> elements_test = ObjectContext.PageElements
.Where(_dateDebutCheck).Where(_dateFinCheck)
.Where(pe => _activeLanguageCheck(pe, language))
.Where(pe => _typeCheck(pe, typeElement))
IList<PageElement> list = elements_test.ToList();
private readonly Func<PageElement, bool> _dateDebutCheck = pe => pe.DateDebut.HasValue && pe.DateDebut.Value <= DateTime.Now;
private readonly Func<PageElement, bool> _dateFinCheck = pe => !pe.DateFin.HasValue || pe.DateFin.Value > DateTime.Now;
private readonly Func<PageElement, byte, bool> _activeLanguageCheck = (pe, l) => pe.PageElementLanguages.Where(y => y.Active).Select(y => y.LanguageId).Contains(l);
private readonly Func<PageElement, byte?, bool> _typeCheck = (pe, t) => pe.TypeId == t;
Run Code Online (Sandbox Code Playgroud)
我发现当ToList的调用花了很长时间,我想知道是否有任何我做错了导致性能下降.我此时只运行ToList作为测试,但只需要几秒钟就可以返回大约7000条记录.我怎样才能改善这个?
我正在尝试解决从php脚本下载"zip"文件时遇到的问题.似乎当我使用以下代码下载文件时,下载的文件在文件的开头附加了额外的0A09,导致winzip抛出损坏错误.
<?php
$pagePermissions = 7;
require_once ('util/check.php');
require_once ('util/file_manager.php');
$file_manager = new FileManager();
if ($_SERVER['REQUEST_METHOD'] == "GET") {
if (isset($_GET['q']) && $_GET['q'] == 'logout') {
//require_once ('util/users.php');
//$userdata = new Userdata();
$userdata -> kill_session();
header("Location: download.php");
exit ;
}
if (isset($_GET['q']) && $_GET['q'] == 'fetch') {
if (isset($_GET['name'])) {
@apache_setenv('no-gzip', 1);
header("Content-length: " . filesize('upload/' . $_GET['name']));
header('Content-type: application/zip');
//header("Content-Disposition: attachment; filename=\"{$_GET['name']}\" ");
header("Content-Disposition: attachment; filename={$_GET['name']}");
header('Content-Transfer-Encoding: binary');
readfile('upload/' . $_GET['name']);
exit();
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,文件通过直接链接下载正常,文件的开头附加的2个字节只发生在这个代码.提前致谢
我有一个宽的合并单元格,显示工作表的标题。我还有一个彩色文本框,我想将其立即放置在合并单元格中文本的右侧。
标题的宽度是可变的,因此我使用了非常宽的合并单元格。
sheet.Range["A2"].Value = title;
//Red Square
sheet.Shapes.Item("redSquare").Left += 0; // Position sheet.Range["A2"].TextWidth ???
Run Code Online (Sandbox Code Playgroud)
我可以在 Range 上访问一个属性,它可以为我提供合并单元格中文本的实际文本宽度(以像素为单位)吗?
我试图划分两个整数值并存储为浮点数.
void setup()
{
lcd.begin(16, 2);
int l1 = 5;
int l2 = 15;
float test = 0;
test = (float)l1 / (float)l2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(test);
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我期望相当明显,我似乎无法存储和显示正确的值.'test'变量始终设置为0.
如何转换整数值?
我有一个类,我想存储一个函数调用.此函数调用可以由类调用,但由父类设置.我想从外部提供要做的调用,包括任何参数.
就像是...
public class TestDelegate
{
public TestDelegate()
{
TestClass tc = new TestClass(DoSomething("blabla", 123, null));
}
private void DoSomething(string aString, int anInt, object somethingElse)
{
...
}
}
public class TestClass
{
public TestClass(delegate method)
{
this.MethodToCall = method;
this.MethodToCall.Execute();
}
public delegate MethodToCall { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当TestClass类初始化它将调用父类的方法的DoSomething用指定参数.我还要提一下,我不想为所调用的方法要求相同的方法签名.意义并不总是(string,int,object)
我试图完成一些看似有点复杂但在我的情况下会非常有用的东西,看起来像这样.
public class CommonBaseClass {}
public class Type1Object : CommonBaseClass {}
public class Type2Object : CommonBaseClass {}
public class Type3Object : CommonBaseClass {}
public static Dictionary<string, Type> DataTypes = new Dictionary<string, Type>()
{
{ "type1" , typeof(Type1Object) },
{ "type2" , typeof(Type2Object) },
{ "type3" , typeof(Type3Object) }
};
public static CommonBaseClass GetGenericObject(string type)
{
return new DataTypes[type](); //How to instantiate generic class?
}
Run Code Online (Sandbox Code Playgroud)
因为我可以保证所有构造函数具有相同的签名,我知道这将起作用,只是不确定如何让编译器知道.
提前致谢
我正在尝试创建一个Visual Studio项模板,该模板将创建一个WPF窗口,其中包含视图模型的附加文件
如下所示
VMWindow.xaml --- VMWindow.xaml.cs --- VMWindow.vm.cs
我能够使用以下.vstemplate文件创建模板
<VSTemplate Type="Item" Version="2.0.0"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Viewmodel Dialog Box</Name>
<Description>Viewmodel Dialog Box</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<DefaultName>VMDialog</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem TargetFileName="$fileinputname$.xaml" SubType="Window">ViewModelDialogTemplate.xaml</ProjectItem>
<ProjectItem TargetFileName="$fileinputname$.xaml.cs">ViewModelDialogTemplate.xaml.cs</ProjectItem>
<ProjectItem TargetFileName="$fileinputname$.vm.cs">ViewModelDialogTemplate.vm.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)
我希望模板能够在解决方案资源管理器中显示时嵌套在主窗口文件中的.vm.cs文件中创建自己.
我找到了以下howto,但我在使用Visual Studio 2010时遇到了麻烦.它写于2008年,这仍然适用吗?
我使用linq方法语法进行以下查询
IEnumerable<PageElement> elements_test = ObjectContext.PageElements
.Where(_dateDebutCheck).Where(_dateFinCheck)
.Where(_activeLanguageCheck(language));
private readonly Expression<Func<PageElement, bool>> _dateDebutCheck = pe => pe.DateDebut.HasValue && pe.DateDebut.Value <= DateTime.Now;
private readonly Expression<Func<PageElement, bool>> _dateFinCheck = pe => !pe.DateFin.HasValue || pe.DateFin.Value > DateTime.Now;
private readonly Expression<Func<PageElement, byte, bool>> _activeLanguageCheck =
(pe, lang) => pe.PageElementLanguages.Where(y => y.Active).Select(y => y.LanguageId).Contains(lang);
Run Code Online (Sandbox Code Playgroud)
对于不带参数的前2个表达式,语法似乎是正确的,如何在Where子句中使用language参数调用第三个表达式?
我想对组,语言和TestEnum的所有可能组合运行GetResults().如何使用lambda表达式重新编写此代码以避免使用foreach循环?
public enum TestEnum
{
ONE,
TWO,
THREE
}
public static void Test1()
{
List<string> groups = new List<string>() { "group1", "group2", "group3", "group4" };
List<string> languages = new List<string>() { "EN-CA", "FR-CA" };
List<string> results = new List<string>();
foreach (string group in groups)
{
foreach (string language in languages)
{
foreach (TestEnum enumval in Enum.GetValues(typeof(TestEnum)))
{
results.Add(GetResult(group, language, enumval));
}
}
}
}
public static string GetResult(string group, string language, TestEnum enumval)
{
return group + language + enumval.ToString(); …Run Code Online (Sandbox Code Playgroud) 我想为IEnumerable编写一个类似于Select调用TrySelect的扩展,TrySelect将忽略select func抛出异常的任何元素的选择.
我有以下,有效.
public static IEnumerable<TResult> TrySelect<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
List<TResult> ret = new List<TResult>();
foreach (TSource input in source)
{
try
{
ret.Add(selector(input));
}
catch { }
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何在不使用列表的情况下编写扩展,以便在调用元素之前保留不填充元素的IEnumerable行为.