我有很多实现特定接口(ISearchable)的类,我想从静态方法返回基类型(ISearchable)的IEnumerable ,但是我不知道如何在没有中间的情况下转换它集合.
代码非常简单,域对象的实现之一就是这样:
public class account : ISearchable
{
public static IEnumerable<ISearchable> Search(string keyword)
{
// ORMVendorCollection<T> implements IQueryable<T>
ORMVendorCollection<account> results = /* linq query */
// this works if I change the return type to IEnumerable<account>
// but it uglifies client code a fair bit
return results.AsEnumerable<account>();
// this doesn't work, but it's what I'd like to achieve
return results.AsEnumerable<ISearchable>();
}
}
Run Code Online (Sandbox Code Playgroud)
客户端代码,理想情况如下:
public static IEnumerable<ISearchable> Search(string keyword)
{
return account.Search(keyword)
.Concat<ISearchable>(order.Search(keyword))
.Concat<ISearchable>(otherDomainClass.Search(keyword));
}
Run Code Online (Sandbox Code Playgroud) 几周前我们开始使用jStorage存储元素的一些帮助数据,以便它可以在多个页面中保留.这似乎工作正常,直到我们重定向到我们的网站中使用https的页面.一旦那里数据不再可用,虽然我可以将新数据推送到jStorage.我需要的是http页面中的状态.
我们做的事情如下:
$.jStorage.set(key, value);
Run Code Online (Sandbox Code Playgroud)
和
$.jStorage.get(key);
Run Code Online (Sandbox Code Playgroud)
它在http或https中运行良好,但两者的存储似乎不同.
这可能就是事情的原因,我们需要使用cookie或其他东西来重新启动状态.任何建议都会有所帮助.
谢谢
加里
我在Visual Studio 2008中的浮动窗口块(输出,错误列表,查找结果等)已经消失 - 我假设在屏幕外.
我无法找到选项的键盘快捷键(相当于实际窗口的Alt-Space的浮动窗口).怎样才能让我的浮动窗户回来?
我有一个类似东西的清单
<ul>
<li>
<div class="pack1 active1"><span>$3.99</span></div>
</li>
<li>
<div class="pack2"><span>$5.99</span></div>
</li>
<li>
<div class="pack3 active3"><div id="ribbon"><span>40</span></div><span>$6.99</span></div>
</li>
<li>
<div class="pack4"><span>$10.99</span></div>
</li>
<li>
<div class="pack5"><span>$259.99</span></div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想在点击时删除所有活动的*类.我试图做一些类似$('*[class^="active"]').removeClass()但不起作用的事情
有帮助吗?
我有一个非常简单的扩展方法,它与IComparable实例有关:
public static bool Between<T>(this T comparable, T min, T max) where T : IComparable<T>
{
return comparable.CompareTo(min) >= 0 && comparable.CompareTo(max) <= 0;
}
Run Code Online (Sandbox Code Playgroud)
哪种方法可以测试这种方法?我试过模拟IComparable实例无济于事...我使用NUnit和Moq,但我真的是TDD中的菜鸟.
struct node {
int data;
struct node* next;
}
void push (struct node **head, int data) {
struct node* newNode = malloc (sizeof (struct node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
//I understand c version well.
C++ version
void Stack::push( void *data ) {
struct node *newNode = new node;
newNode->data = data;
newNode->next = head;
head = newNode;
}
Run Code Online (Sandbox Code Playgroud)
在c ++中,head是堆栈类的私有或受保护成员,并声明为node*head.
问题:为什么head可以在c ++中调用push()之后保留其值.
在c中,我们需要将其声明为**,因为我们想要在push()函数调用之后更改头指针的值.在c ++代码中,调用后不会改变头部丢失吗?
我已经阅读了SO上提供的解决方案,但到目前为止还没有解决我的问题.我的启动项目是一个非托管的C++项目(我们称之为TestWrapper).目标是让TestWrapper调用托管C++项目,然后调用我的C#项目.这工作正常,我没有运行它的问题.
但是,我的C#代码中出现了异常.由于某种原因,断点不会被击中,实际的调试中断发生在内部ntdll.dll.我试图右键单击C#项目并启用非托管调试,但这不能解决问题.如果有人能指出我的解决方案,我将非常感激.
我要继续并包括项目布局:
TestWrapper (unmanaged C++) -> ManagedWrapper (managed C++) -> MyCSharpProject (C#)
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,它在于调试的配置,但我知道甚至不知道从哪里开始看.
我想写这种程序(这是一个简单的例子来解释我想做什么):
// #r "FSharp.PowerPack.dll"
open Microsoft.FSharp.Math
// Definition of my products
let product1 = matrix [[0.;1.;0.]]
let product2 = matrix [[1.;1.;0.]]
let product3 = matrix [[1.;1.;1.]]
// Instead of this (i have hundreds of products) :
printfn "%A" product1
printfn "%A" product2
printfn "%A" product3
// I would like to do something like this (and it does not work):
for i = 1 to 3 do
printfn "%A" product&i
Run Code Online (Sandbox Code Playgroud)
先感谢您 !!!!!
假设您有一个使用CancelEventArgs类引发事件的事件提升器方法(OnXXX),使OnXXX方法返回e.Cancel的值有什么问题吗?
例如:
Public Sub ProcessFiles(folder as DirectoryInfo)
For each file in folder.GetFiles()
If OnProcessingFile(New FileEventArgs(file)) Then
.....ProcessFileCode
Else
Exit For
End If
Next
End Sub
Protected Function OnProcessingFile(ByVal e As FileEventArgs) As Boolean
RaiseEvent ProcessingFile(Me, e)
Return Not e.Cancel
End Function
Run Code Online (Sandbox Code Playgroud)
对我来说似乎是一个比这更清洁的解决方案:
Public Sub ProcessFiles(folder as DirectoryInfo)
Dim e As FileEventArgs
For each file in folder.GetFiles()
e = New FileEventArgs(file)
OnProcessingFile(e)
If e.Cancel Then
Exit For
End If
.....Process File Code
Next
End Sub
Run Code Online (Sandbox Code Playgroud) 我有一个返回xml块的WCF服务.一个元素是CData []部分.我的应用程序从数据库中读取HTML文件,并使用ABCPDF将其转换为PDF byte []数组.然后在我的XmlWriter中将字节添加到CData部分.
问题是生成的xml如下所示:
<![CDATA[System.Byte[]]]>
Run Code Online (Sandbox Code Playgroud)
如何将字符串输入CData部分?我尝试过这样的事情:
string str;
ASCIIEncoding enc = new ASCIIEncoding();
str = enc.GetString(theData);
Run Code Online (Sandbox Code Playgroud)
和
Convert.ToBase64String(theData);
Run Code Online (Sandbox Code Playgroud)
我卡住!! 任何帮助都会很棒,谢谢!