我有一个用 C# 编写的 WPF 4.0 应用程序,目前正在使用System.Windows.Forms.Help.ShowHelp()来显示该应用程序的 Windows 帮助文件。
我希望能够在打开时控制帮助查看器的初始大小。目前它默认为最近使用的大小。
我怎样才能做到这一点?
我列出了人们对调查问卷的答复.答案当前是一个字符串数组,所以我的对象看起来像
List<string[]> answers = new List<string[]>()
{ new string[]{"T","A","T","F","B"},
new string[]{"F","A","T","F","B"},
new string[]{"T","A","F","F","B"}
};
Run Code Online (Sandbox Code Playgroud)
我需要找到所有值相同的数组索引和值.将得到的对象可以是 string[]像
{"","A","","F","B"}
Run Code Online (Sandbox Code Playgroud)
或某种类型的自定义对象元组,如{1,"A"},{3,"F"},{4,"B"}
我可以假设所有字符串数组的长度都相同.
我可以通过蛮力和循环来做到这一点,但我想知道是否有更有效的清洁方式,可能通过Linq.
这就引出了一个问题,Linq是否只是在内部使用循环,而且保存的唯一效率是代码行并且必须创建局部变量.
更新: 关于OR Mapper和Vajura我想到的两个循环
得到第一组答案,它给出了每个字符串[]的长度,并给出了答案应该是什么.即使第一个人是唯一一个回答A的人,那么所有其他非A将自动取消该指数的资格
for each index in string[]
answer = List[0][index]
for i=1 to List.Count - 1
compare answer to List[i][index]
if false exit loop
if we made it through it is good
Run Code Online (Sandbox Code Playgroud) 附件是经典的装饰图案.我的问题是你如何修改下面的代码,这样你就可以将每个顶部的零个或一个包裹到Pizza上
现在我可以有一个Pepporini - > Sausage - > Pepporini - > Pizza课程,总成本高达10美元,Pepporini充电两次.
我认为我不想使用责任链模式,因为订单无关紧要并且并非使用所有浇头?
谢谢
namespace PizzaDecorator
{
public interface IPizza
{
double CalculateCost();
}
public class Pizza: IPizza
{
public Pizza()
{
}
public double CalculateCost()
{
return 8.00;
}
}
public abstract class Topping : IPizza
{
protected IPizza _pizzaItem;
public Topping(IPizza pizzaItem)
{
this._pizzaItem = pizzaItem;
}
public abstract double CalculateCost();
}
public class Pepporini : Topping
{
public Pepporini(IPizza pizzaItem)
: base(pizzaItem)
{
}
public override double CalculateCost() …Run Code Online (Sandbox Code Playgroud) 首先我确实看到了这一点但它似乎没有帮助 .NET中的XPath SelectNodes
我正在尝试阅读SSRS报告定义.
ReportingService report = new ReportingService();
report.Credentials = System.Net.CredentialCache.DefaultCredentials;
string x = new System.Text.UTF8Encoding().GetString(
report.GetReportDefinition(ReportName));
//Remove a Character at the beginning of the document -- Char 65279
x = x.Replace(x.Substring(0, 1), "");
XmlDocument xml = new XmlDocument();
XmlNamespaceManager ns = new XmlNamespaceManager(xml.NameTable);
// This appears to be a reserved default?
//ns.AddNamespace("xmlns","http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
ns.AddNamespace("xmlns:rd","http://schemas.microsoft.com/SQLServer/reporting/reportdesigner");
xml.LoadXml(x);
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找应该在的Query节点
Report
...
DataSets
DataSet
Query
Run Code Online (Sandbox Code Playgroud)
现在,如果我看一些变量
xml.Name = "#document"
xml.DocumentElement.Name = "Report"
xml.DocumentElement.ChildNodes[12].Name = "DataSets"
xml.DocumentElement.ChildNodes[12].ChildNodes[0].Name = "DataSet"
xml.DocumentElement.ChildNodes[12].ChildNodes[0].ChildNodes[1].Name = "Query"
Run Code Online (Sandbox Code Playgroud)
但问题是尝试了一些我无法访问此DataSet节点或任何子节点的事情.例
xml.DocumentElement.SelectNodes(".//DataSets",ns); …Run Code Online (Sandbox Code Playgroud)