我的工作有问题希望减少到以下内容:我有两个List<int>s,我想看看是否有任何ints in ListA等于任何intin ListB.(它们可以是阵列,如果这样可以让生活变得更轻松,但我认为它List<>有一些可能有帮助的内置魔法.)而且我确信这是一个LINQ友好的问题,但我在这里工作的是2.0.
到目前为止我的解决方案是foreach通过ListA,然后foreach通过ListB,
foreach (int a in ListA)
{
foreach (int b in ListB)
{
if (a == b)
{
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当它们每个长三个项目时实际上非常光滑,但现在它们长200并且它们经常不匹配,所以我们得到N ^ 2比较的最坏情况.即使是40,000次比较也相当快,但我想我可能会遗漏一些东西,因为N ^ 2对于这个特殊问题似乎很天真.
谢谢!
我有一个项目,我正在使用PDF生成器向用户发送文件.我们希望为用户提供将此文件附加到电子邮件的选项,而我们在使用Stream对象和附件逻辑时遇到问题.
我们从ABCpdf开始,它有两个保存方法:它可以保存到Stream,或者如果你给它一个字符串,它会尝试保存到磁盘上的文件.我们两个都没问题.
Stream stream = new MemoryStream();
myPdf.Save(stream);
Run Code Online (Sandbox Code Playgroud)
此时一切都很酷 - stream有几千字节的数据,如果你.save()到一个文件,你得到一个具有相同字节数的实际文件.
所以我们此时附上一封电子邮件(初始化邮件对象后,设置为:和发件人:等):
mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();
Run Code Online (Sandbox Code Playgroud)
...让我们收到一个0字节的电子邮件,但正确的文件名.
我在网上找到的所有例子都使用StreamReader或StreamWriter或Flush()等.它总是看起来比简单传递Stream更复杂,但可能只有一两行更复杂.这些示例都不是以Stream开头的 - 他们总是试图将数组转换为Stream来向您展示它是多么容易,或者从磁盘中获取文件(我们无法做到这一点,这就是为什么我们很兴奋使用Stream).
无论如何,如果有人能解释我做错了什么或我应该做什么,我真的很感激.谢谢.
我尝试通过WPF应用程序连接到SharePoint Online实例.我发现这篇文章描述了一个可能的解决方案,但问题是特定实例前面有一个Active Directory联合身份验证服务(ADFS),我不知道如何获取auth-token.(我无法为我的应用程序创建证书以对adfs进行身份验证.)
任何已经完成此操作的人都可以通过一些代码片段来支持我吗?
我将把图像保存到SQL数据库中(不知道在那里使用什么类型),我将查询数据库中的学生肖像拍摄图像.
我应该使用什么变量类型来存储此图像?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Nana_s_Student_Gradebook
{
class Student
{
public string name { get; set; }
public string lastName { get; set; }
public byte[] picture { get; set; }
public DateTime dateOfBirth { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
有什么指导吗?:)
我刚刚在一个项目中找到:
try
{
myLabel.Text = school.SchoolName;
}
catch
{
myPanel.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
我想和开发人员谈谈,而不是写这个,说发生null异常(因为school理论上可能是null,不是myLabel)会使计算机发出三次蜂鸣声并睡两秒钟.但是,我想知道我是否错过了关于这一点的规则.显然,这不是try/catch的预期用途,但这是不好的,因为它因性能考虑而无视意图或不好?我觉得这很糟糕,但我想说的不仅仅是"那真的很糟糕".
比方说,我有一个对象Customer有几个属性(ID,FirstName,LastName).我有默认的构造函数Customer(),但后来我也有了Customer(DataRow dr),因为我从数据库加载这个对象,这是一个简单的方法.
我经常谈到我想要设置另一个构造函数的地方,Customer(int ID)有时我想要加载一个Customer但是我还没有去过数据库.对我来说最简单的方式似乎是这样的:
Customer(int ID)
{
DataTable dt = DataAccess.GetCustomer(ID);
if (dt.Rows.Count > 0)
{
// pass control to the DataRow constructor at this point?
}
else
{
// pass control to the default constructor at this point?
}
}
Run Code Online (Sandbox Code Playgroud)
重用已经在DataRow构造函数中的代码是有意义的,但我无法找到一种方法来调用它并返回它给我的内容.通过谷歌搜索,我发现了有关使用: this()语法重构的构造函数的信息,但所有这些示例似乎都是向后或与我正在尝试的内容不兼容.
所以我对构造函数的理解存在差距,但我似乎无法解决它.我错过了什么?
我有一个VS2005解决方案,想要在新的一年里下VS2005.我对升级过程感到非常满意,并且惊喜地看到我的构建脚本大部分仍然有效.
我的问题是围绕多目标功能 - 我没有在我的服务器上安装.NET 3.5,所以我必须继续以.NET 2.0为目标.这主要是有效的,但我发现我可以做的事情
var returnMe = "result: " + result.ToString();
Run Code Online (Sandbox Code Playgroud)
...并且仍然成功调试项目.
当我将代码添加到构建服务器时,构建失败,说没有定义"var".
那么,我应该期待哪一个?
有任何想法吗?
.net multitargeting visual-studio-2008 visual-studio .net-2.0
在SQL Server 2005中,我有一个产品搜索,如下所示:
select ProductID, Name, Email
from Product
where Name = @Name
Run Code Online (Sandbox Code Playgroud)
我被要求忽略Product.Name中的几个"特殊"字符,以便搜索"Potatoes"返回"Po-ta-toes"以及"Potatoes".我的第一个想法是这样做:
select ProductID, Name, Email
from Product
where REPLACE(Name, '-', '') = @Name
Run Code Online (Sandbox Code Playgroud)
......但是第二个想法,我想知道我是否通过在每个候选结果上运行一个函数来杀死性能.SQL有一些优化魔法可以帮助它快速完成这类工作吗?您能想到我能够尝试满足我的要求吗?
我正在编写一个用户将创建约会的应用程序,并立即收到确认其约会的电子邮件.我还想在他们预约的那天发送电子邮件,提醒他们实际出现.
我在MS SQL上的ASP.NET(2.0).即时电子邮件没问题,但我不确定解决提醒电子邮件的最佳方式.基本上,我可以想到三种方法:
我错过了一些明显的东西吗 我怎么能做到这一点?
在生产环境中部署了 ASP.NET 站点的新版本后,我每秒记录数十个数据错误,几乎总是出现错误“找不到表 0”。我们使用数据集并经常参考Table[0],虽然我了解在访问之前检查数据集的表的防御性编码实践Table[0],但在过去从来不是问题。某个页面会在一秒钟内正常加载,然后在下一秒钟会丢失其数据驱动组件之一。只是看看这是否为任何人敲响了警钟。
更多细节:这次我使用了不同的构建服务器,虽然我认为两者的编译器设置是相同的,但我很难想到有一个开关可以让我的 50% 的数据库调用在没有表的情况下返回。我也将项目切换到 VS 2008,但是当我切换回 VS 2005 时恢复了所有这些更改。我注意到构建的程序集有一个新的MyLibrary .XmlSerializers.dll,它不习惯,但我也无法想象这是造成所有麻烦的原因。(它也不会因调用MyLibrary而失败,或者至少不会超过任何其他时间。)
更新添加:我发现麻烦的构建是“发布”构建,其中工作构建被编译为“调试”。 这能解释吗?
在这些更改修复它之前回滚到构建。(重新启动 SQL Server,我们之前尝试过的步骤没有。)
问题似乎也是基于负载的——这在我们的集成和 QA 环境中毫无问题地巡航,甚至我们的冒烟测试环境——指向生产数据的环境——在轻负载下也很好。
这是否具有您过去可能见过的任何事物的显着特征?
在 Word 2013(桌面)和 office.js 中,我们看到一些围绕用户选择 ( GetSelectedDataAsync, SetSelectedDataAsync) 的功能,但没有任何功能可以让您查看整个 (OpenXML) 文档。我错过了什么吗?
在我正在使用的网站上,我们有两类他们可以要求的更改.一方面,他们有一些我必须重建和重新部署的东西.他们将这些视为"停机时间"的变化,因为我们会显示一个漂亮的小闪屏,当我们回来时我们会彻底测试网站.
另一方面,他们要求我们进行一些文本更改,打开和关闭功能等,我们已将其隔离到web.config.我们提供在部署窗口内部或外部执行这些操作 - 我们只需编辑文件,检查更改是否正确,然后返回工作.
但客户端的一个聪明人指出,编辑web.config会回收应用程序池,这就是那里的停机时间.我从来没有注意到,但我认为这是正确的 - 当应用程序池不可用时,应用程序是"关闭".
但是持续多久?我不是要求您通过停机间隔来分析客户的舒适程度,但这是一个共同的观点吗?或者我们不应该担心web.config编辑是否伴随着应用程序停机的第二或两次?
在ASP.NET应用程序中,我使用iTextSharp(主要是PdfStamper)来填充PDF上的一些内容并将其发送给用户.以下代码位于OnClick事件中:
PdfReader r = new PdfReader(
new RandomAccessFileOrArray(Request.MapPath(compatiblePdf)), null
);
ps = new PdfStamper(r, Response.OutputStream);
AcroFields af = ps.AcroFields;
af.SetField("ContactInfo[0]", o.mallName);
af.SetField("ClientName", string.Format("{0} {1}", c.firstName, c.lastName));
af.SetField("ClientEmail", c.emailAddress);
ps.FormFlattening = true;
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=Form.pdf");
ps.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)
因此,基本上,PdfReader获取文件,PdfStamper将PdfReader作为参数,并将其完成的PDF推送到Response.OutputStream.
问题是,使用IE和Adobe Reader,如果从文件对话框中选择"打开",Adobe Reader会抛出错误提示"无法找到文件".用户可以"保存"文件,甚至可以再次开始下载(在被问到时再次单击"打开")似乎可以正常工作.但是在一台永远不会下载文件的新机器上,Adobe Reader似乎错误地将文件放在临时文件或IE之间.
我现在只能想象一件事:Response.End()或许,应该,或许,Response.Close()或许整个事情应该Response.Flush()在它之前.但我不确定这会不会使问题变得更糟,而且我很难测试(因为,一旦你下载了一次文件,就不会再次抛出错误).
可能解决问题吗?我在标题中有什么问题吗?或者我还应该对Response/PdfStamper对象做些什么呢?
c# ×6
asp.net ×4
.net ×3
sql ×3
.net-2.0 ×1
adfs ×1
arrays ×1
attachment ×1
constructor ×1
dataset ×1
downtime ×1
email ×1
iis ×1
itextsharp ×1
list ×1
ms-office ×1
oop ×1
openxml ×1
outputstream ×1
replace ×1
response ×1
sharepoint ×1
smtp ×1
sql-server ×1
streaming ×1
try-catch ×1
types ×1
web-config ×1