我正在制作一个程序,将发票作为 PDF 附件发送给注册用户。每张发票均由 GUID 标识。在某些情况下,我希望能够以编程方式从邮件中查找 GUID,而无需阅读 PDF 文件。
我可以使用邮件标头字段来包含发票 GUID,还是这是一种不好的做法,并且邮件标头字段不适用于此目的?
由于IEnumerable.Contains()方法不接受谓词作为参数,大多数人使用以下代码来检查是否存在与条件匹配的东西:
// ProductId is unique.
if (Products.Count(c => c.ProductId = 1234) == 1)
{
// Products list contains product 1234.
}
Run Code Online (Sandbox Code Playgroud)
此代码强制遍历每个产品并检查它是否匹配.实际上没有必要这样做.
在查看Linq-to-SQL生成的SQL代码时,存在同样的问题.select count(*) ... where ProductId = @p0发送一个语句,而不是if exists.
如何通过Linq查找集合是否包含与条件匹配的项目,而不必遍历集合中的每个元素并计算匹配数量?
在.NET Framework中,有一些类使用SomethingCollection语法.
例如,在处理时SqlCommand,它有一个Parameters类型的参数SqlParameterCollection.由于它没有IEnumerable<SqlParameter>(或IList<SqlParameter>类似的)形式,所以不可能写:
foreach (var c in sqlCommand.Parameters)
{
Debug.WriteLine(string.Concat(c.ParameterName, ": ", c.Value));
}
Run Code Online (Sandbox Code Playgroud)
相反,var必须用显式替换SqlParameter.
处理Windows窗体控件(列表视图项的集合等)时,事情非常相似,并且存在于其他类中.
这是什么?为什么存在这样的类而不是通用的IEnumerables/ILists?
我有点卡在这个上面.在我的PHP代码中,我查询了一些返回的记录.我循环遍历行,但是对于每一行,我想使用其名称作为索引来检索列值.
while ($row=mysql_fetch_row($result))
{
echo $row[7];
}
Run Code Online (Sandbox Code Playgroud)
这打印出我想要的东西,但我想做的事情如下:
echo $row["description"];
Run Code Online (Sandbox Code Playgroud)
哪里描述是我要打印其值的列的名称?可以这样做吗?
非常感谢你.
我有一个(似乎是)非常简单的问题,但在搜索了几个小时之后,我找不到任何有用的东西.
这是问题所在:
在Microsoft SQL中,我有一个表,其中列A存储一些数据.该数据可以包含重复项(即,两列或更多行对于列A具有相同的值).
我可以很容易地找到重复做:
select A, count(A) as CountDuplicates
from TableName
group by A having (count(A) > 1)
Run Code Online (Sandbox Code Playgroud)
现在,我想要检索其他列的值,假设乙和Ç.当然,即使对于共享相同A值的行,这些B和C值也可能不同,但对我来说无关紧要.我只想要任何B值和任何C值,第一个,最后一个或随机的一个.
如果我有一个小桌子和一两列要检索,我会做类似的事情:
select A, count(A) as CountDuplicates, (
select top 1 child.B from TableName as child where child.A = base.A) as B
)
from TableName as base group by A having (count(A) > 1)
Run Code Online (Sandbox Code Playgroud)
问题是我有更多的行可以获得,并且表格非常大,因此选择几个孩子会有很高的性能成本.
那么,是否有一个不那么难看的纯SQL解决方案呢?
不确定我的问题是否足够清楚,所以我举一个基于AdventureWorks数据库的例子.假设我想列出可用的州,并为每个州提供其代码,城市(任何城市)和地址(任何地址).最简单,最低效的方法是:
var q …Run Code Online (Sandbox Code Playgroud) 我们都知道这this是指一个类的实际实例......但在我看来,大多数人并没有使用它.那么,我应该使用它吗?
我对它的看法如下:由于this引用了类的实际实例,它应该用于访问该类的任何成员.
public void(String newValue) {
this.privateVariable = newValue;
}
Run Code Online (Sandbox Code Playgroud)
这应该保证该值不会分配给范围内具有相同名称的对象(无论如何,这也可能最终成为未定义的行为).但是,如果使用下划线将私有字段与非私有字段分开,该怎么办:
public voud(String newValue) {
_privateVariable = newValue;
}
Run Code Online (Sandbox Code Playgroud)
this 在这种情况下似乎有点多余和不必要.
那么,是否有充分的理由使用或不使用this?或者我只是绞尽脑汁想要什么?
我已经阅读了解释C#中没有多重继承的问题/答案,我们甚至不需要它,并且它会导致太多问题.
现在,我正在开发一个项目,我不知道如何在没有多重继承的情况下执行操作,而无需重复代码.
这是情况.有一个主页和其他页面继承自主页(主页不继承)的网站.页面和母版页都在执行一些操作:自定义登录,统计,加载用户自定义设置等.目前,解决方案很糟糕,因为这些任务的源代码只是被复制了两次.
主页类继承自Page.另一方面,母版页继承自Masterpage.从逻辑上讲,从公共类继承也很棒,但它是多重继承,所以这是不可能的.
那又怎么办呢?
我想过几种方法,但不喜欢它们:
创建一个独立的类,它将从page/masterpage类中调用.所以,例如,而不是写作bool isDisplayingTips = this.CurrentUser.IsDisplayingTips,我会写bool isDisplayingTips = this.SharedObjects.CurrentUser.IsDisplayingTips.我不喜欢它,因为它写的时间更长.
创建一个"真实的"空的公共母版页,并从中继承主页和母版页.它不仅需要编写更多代码来访问母版页参数,而且还会减慢速度,每次请求都需要额外的母版页.
任何的想法?
c# asp.net master-pages code-duplication multiple-inheritance
发送电子邮件时,我收到以下错误:
System.Net.Mail.SmtpClient.Send(MailMessage消息)中的设备尚未就绪.
代码是:
MailMessage mailMessage = new MailMessage(senderEmail, cleanRecipients)
{
Subject = string.empty,
Body = string.empty,
IsBodyHtml = false
};
SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud) Visual Studio有很多很棒的功能,其中一个功能使您的代码非常适合您.我喜欢它,除了一个小细节之外没有任何问题.
来自Java和PHP的Netbeans和Eclipse都没有这样做,并允许我开发自己的风格.(虽然肯定不是唯一的)
这就是我编写方法的方法:
void myMethod () {
}
Run Code Online (Sandbox Code Playgroud)
哪个更改为:
void myMethod()
{
}
Run Code Online (Sandbox Code Playgroud)
我对花括号的下一行完全没问题.
但是我真的不喜欢Visual Studio删除方法名称和括号之间的小空格.
有谁知道如何专门关闭它?
我正在检查 AngularJS 应用程序的性能问题。
执行特定操作时,CPU 使用率达到 100%,Chrome 窗口冻结,我必须使用 Chrome 的任务管理器手动终止进程。
我尝试调试该应用程序(DevTools 的Sources选项卡),但该应用程序非常大且代码被缩小,这意味着要找到问题并不容易:我看到许多由摘要循环触发的代码,并且无法弄清楚哪个代码是真正的罪魁祸首。
能够在应用程序冻结后对其进行分析可能会有帮助;我很确定分析器会立即显示实际的瓶颈。我可以在冻结发生之前成功启动分析器(性能选项卡),但是一旦应用程序冻结,当我单击停止按钮时,加载配置文件窗口就停留在 0%(我等了 15 分钟只是为了确定,它仍然在零),所以我想它也被冻结了。
因此我的问题是:
当我无法通过简单的调试应用程序找出问题时,如何找到导致应用程序冻结的原因?
c# ×5
.net ×2
coding-style ×2
angularjs ×1
asp.net ×1
debugging ×1
exists ×1
group-by ×1
ienumerable ×1
linq ×1
linq-to-sql ×1
master-pages ×1
mysql ×1
optimization ×1
performance ×1
php ×1
profiling ×1
sql ×1
t-sql ×1
winforms ×1