我正在尝试.Contains()
在自定义对象列表上使用该函数
这是清单:
List<CartProduct> CartProducts = new List<CartProduct>();
Run Code Online (Sandbox Code Playgroud)
而且CartProduct
:
public class CartProduct
{
public Int32 ID;
public String Name;
public Int32 Number;
public Decimal CurrentPrice;
/// <summary>
///
/// </summary>
/// <param name="ID">The ID of the product</param>
/// <param name="Name">The name of the product</param>
/// <param name="Number">The total number of that product</param>
/// <param name="CurrentPrice">The currentprice for the product (1 piece)</param>
public CartProduct(Int32 ID, String Name, Int32 Number, Decimal CurrentPrice)
{
this.ID = ID;
this.Name = Name; …
Run Code Online (Sandbox Code Playgroud) 基本上我的伙伴一直在说我可以通过使用一种不同的方式检查一个int数组是否包含int来缩短我的代码,尽管他不会告诉我它是什么:P.
当前:
public boolean contains(final int[] array, final int key) {
for (final int i : array) {
if (i == key) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
也试过这个,虽然它总是由于某种原因返回false.
public boolean contains(final int[] array, final int key) {
return Arrays.asList(array).contains(key);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我吗?
谢谢.
更新3:根据此公告,EF团队在EF6 alpha 2中已经解决了这个问题.
更新2:我已经创建了一个解决此问题的建议.要投票,请到这里.
考虑一个带有一个非常简单的表的SQL数据库.
CREATE TABLE Main (Id INT PRIMARY KEY)
Run Code Online (Sandbox Code Playgroud)
我用10,000条记录填充表格.
WITH Numbers AS
(
SELECT 1 AS Id
UNION ALL
SELECT Id + 1 AS Id FROM Numbers WHERE Id <= 10000
)
INSERT Main (Id)
SELECT Id FROM Numbers
OPTION (MAXRECURSION 0)
Run Code Online (Sandbox Code Playgroud)
我为表构建EF模型并在LINQPad中运行以下查询(我使用"C#语句"模式,因此LINQPad不会自动创建转储).
var rows =
Main
.ToArray();
Run Code Online (Sandbox Code Playgroud)
执行时间约为0.07秒.现在我添加Contains运算符并重新运行查询.
var ids = Main.Select(a => a.Id).ToArray();
var rows =
Main
.Where (a => ids.Contains(a.Id))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
这种情况的执行时间是20.14秒(慢288倍)!
起初我怀疑为查询发出的T-SQL需要更长的时间才能执行,因此我尝试将其从LINQPad的SQL窗格剪切并粘贴到SQL Server Management Studio中.
SET …
Run Code Online (Sandbox Code Playgroud) 就像标题所说,我想替换div中文本的特定部分.
结构如下所示:
<div class="text_div">
This div contains some text.
</div>
Run Code Online (Sandbox Code Playgroud)
例如,我想用"hello everyone"替换"contains".我无法找到解决方案.
是否有一种xpath方法来查找具有给定属性的节点,该属性的值包含给定的字符串?
例如,我有一个xml文档,并希望找到address
属性包含字符串的节点Downing
,以便我可以找到以下节点:
<person name="blair" address="10 Downing St. London"/>
Run Code Online (Sandbox Code Playgroud) 基本上我有大约1,000,000个字符串,对于每个请求,我必须检查字符串是否属于列表.
我担心性能,所以最好的方法是什么?ArrayList
?哈希?
假设我有:
<li id="1">Mary</li>
<li id="2">John, Mary, Dave</li>
<li id="3">John, Dave, Mary</li>
<li id="4">John</li>
Run Code Online (Sandbox Code Playgroud)
如果我需要找到包含"John"和"Mary"的所有<li>元素,我将如何构建jQuery?
搜索单个字符串似乎很容易:
$('li:contains("John")').text()
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似下面的伪代码:
$('li:contains("John")' && 'li:contains("Mary")').text()
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一些XML结构如下:
<whatson>
<productions>
<production>
<category>Film</category>
</production>
<production>
<category>Business</category>
</production>
<production>
<category>Business training</category>
</production>
</productions>
</whatson>
Run Code Online (Sandbox Code Playgroud)
我需要选择一个不包含"商业"类别的每个作品(所以这只是本例中的第一个作品).
xpath有可能吗?我尝试过沿着这些方向努力但却无处可去:
//production[not(contains(category,'business'))]
Run Code Online (Sandbox Code Playgroud) 我有一个枚举
enum myEnum2 { ab, st, top, under, below}
Run Code Online (Sandbox Code Playgroud)
我想编写一个函数来测试myEnum中是否包含给定值
类似的东西:
private bool EnumContainValue(Enum myEnum, string myValue)
{
return Enum.GetValues(typeof(myEnum))
.ToString().ToUpper().Contains(myValue.ToUpper());
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为无法识别myEnum参数.
我以为是CONTAINS
,但那不适合我.
我希望这样做:
IF CONTAINS(@stringVar, 'thisstring')
...
Run Code Online (Sandbox Code Playgroud)
我必须运行一个select
或另一个,取决于该变量是否包含一个字符串,我无法弄清楚如何让它工作.我看到的所有示例都使用了包含的列.
提前致谢.