我有一个很大的值列表(100-200个字符串),我需要返回一个明确的列表.使用.NET执行此操作的最有效方法是什么?我能想到的两种方式是:
如果字典方法的原始速度更快,请考虑围绕代码可维护性的权衡决策.
sql noob的位,在客户代码/电话号码的表a中有一个列表,而表b包含所有的呼叫记录.
我想从表b中为表a中的每个客户代码/电话号码选择最近的呼叫.
到目前为止,我有:
SELECT A.CustomerCode, A.PhoneNumber, B.StartTime
FROM tableA A INNER JOIN
tableB B ON ( A.PhoneNumber = B.PhoneNumber
AND A.CustomerCode = B.CustomerCode )
ORDER BY A.CustomerCode, A.CLI, B.StartTime DESC
Run Code Online (Sandbox Code Playgroud)
但这会带来TableB的所有结果.我真的只想得到最近的电话,如果这有意义吗?
我有这个功能,我希望在#Data#中获得独特的价值.但我的问题是,如果有两个具有相同字符的值,但一个是Upper,一个是Lower(即Comedy和喜剧),它仍然在我的数据中同时具有值Comedy和喜剧.因此,当我绑定到数据时...它显示两者.
我的功能是:
public void LoadBookGenre(Book abc)
{
var loadbook = from Book s in BookDB.Books where s.Genre == abc.Genre select s;
BookAttribute.Clear();
foreach (Book m in loadbook) BookAttribute.Add(m);
List<Book> distinct = BookAttribute.GroupBy(a => a.Genre).Select(g => g.First()).ToList();
Data.Clear();
foreach (Book s in distinct) Data.Add(s);
}
Run Code Online (Sandbox Code Playgroud) 我有这个LINQ从通用列表中获取特定类成员的不同值:
var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct();
Run Code Online (Sandbox Code Playgroud)
通用列表以这种方式定义:
List<ItemsForMonthYear> itemsForMonthYearList;
Run Code Online (Sandbox Code Playgroud)
这堂课是:
public class ItemsForMonthYear
{
public String ItemDescription { get; set; }
public String monthYr { get; set; }
public int TotalPackages { get; set; }
public Decimal TotalPurchases { get; set; }
public Decimal AveragePrice { get; set; }
public Double PercentOfTotal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效:
var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct().OrderBy(x => x.ItemDescription);
Run Code Online (Sandbox Code Playgroud)
...但它甚至没有编译:
" 'string'不包含'ItemDescription'的定义,也没有扩展方法'ItemDescription'接受'string'类型的第一个参数(你是否缺少using指令或汇编引用?) "
如何按字母顺序对不同的值进行排序?
我有一个巨大的solr索引与约1.500.000项目,我想得到所有不同的品牌.
我尝试了这个solr查询:
select/?q=*&rows=0&facet=on&facet.field=brand但并非所有品牌都显示出来(只是其中一些).
Solr响应:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">39</int>
<lst name="params">
<str name="facet">on</str>
<str name="facet.mincount">0</str>
<str name="q">*</str>
<str name="facet.field">brand</str>
<str name="rows">0</str>
</lst>
</lst>
<result name="response" numFound="1520444" start="0"/>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="brand">
<int name=" ">51099</int>
<int name="Blancheporte">11269</int>
<int name="Ama Fashion">8254</int>
<int name="Heine">7026</int>
<int name="Kolok">6874</int>
<int name="Knecht">6836</int>
<int name="JoyJoy">6139</int>
<int name="MyDressing">5418</int>
<int name="Widmann Italia">5310</int>
<int name="modlet">4476</int>
<int name="Mann-Filter">4243</int>
<int name="Daniel Klein">4033</int>
<int name="LEGO">4002</int>
<int name="Casio">3887</int>
<int name="Canon">3706</int>
<int name="Generic">3641</int>
<int name="HP">3608</int> …Run Code Online (Sandbox Code Playgroud) 我试图从逗号分隔的字符串中删除重复的值,并且结果不一致.例如,
如果我通过:
STA27,STA27,STA27B,STA27A,STA27B,
我明白了:
STA27,STA27,STA27B,STA27A,
或者,如果我通过:
STA24,STA24,STA24,STA24,
我明白了:
STA24,STA24,
我已经尝试了几种方法来最终摆脱逗号,但似乎没有任何工作.我不明白为什么Distinct也不起作用.我认为它与字符串终止的方式有关,但在第一个例子中,我得到前两个条目的重复,所以它似乎不是一个位置问题.
有什么想法吗?
public string FindDistinctBeats(String Beats)
// Accept comma-separated string, return distinct values
{
string result = string.Empty;
try
{
result = string.Join(",", Beats.Split(',').Distinct().ToArray());
result = result.TrimEnd(',');
if (String.IsNullOrEmpty(result))
{
return result;
}
else
{
return result.TrimEnd(result[result.Length - 1]);
}
}
catch (Exception e)
{
return e.ToString();
}
}
Run Code Online (Sandbox Code Playgroud) 只是让我感到困惑.
相关但不同的问题: Perl中"0但真实"是什么意思?
我有 2 个表需要加入并从中选择唯一的行。这是我的数据示例:(有更多列)
tbl1:
MB# MBName PCCNo_PRI Primary_IP PCCNo_SEC Secondary_IP ID
100 name 0 10.1.9.10 30 10.1.9.10 1
103 name3 17 10.1.9.27 47 10.1.9.67 4
403 name13 17 10.1.9.27 47 10.1.9.67 14
Run Code Online (Sandbox Code Playgroud)
表2:
RTU PCC#_PRI PCC#_SEC STATION ADDRESS
15 0 30 6
52 12 42 1
53* 17 47 1
54 18 48 1
63 9 39 2
69* 17 47 2
Run Code Online (Sandbox Code Playgroud)
我需要连接这两个表并为 tbl1 中的给定 MB# 获取 tbl2 中的唯一 RTU(s)。查询 =
SELECT t1.MB#,t2.RTU,t2.[Device Manufacturer],t2.PCC#_PRI,t2.PCC#_SEC,t2.[STATION ADDRESS]
INTO C300_RTU_MASTERBLK_Map
FROM mbm_PCDIMasterBlk_tbl as …Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×2
join ×2
linq ×2
sql ×2
distinct ×1
excel ×1
facet ×1
generic-list ×1
ienumerable ×1
perl ×1
solr ×1
sorting ×1
sql-server ×1
string ×1