c# - 如果字符串数组的元素相等,如何拆分它们?
问题描述
再会,
我目前有一个这样的字符串数组:
string[] array = {"aa","bb","cc","dd","aa","cc","ee","ff","aa","bb"}
我希望能够从同一个字符串 [] 中获得相同的位置,例如:
string[] a = {"aa","aa","aa"}
string[] b = {"bb","bb"}
string[] c = {"cc","cc"}
string[] d = {"dd"}
string[] e = {"ee"}
string[] f = {"ff"}
需要注意的是,父矩阵的元素总是变化的,并不总是相同的。
我尝试使用 linq,但我没有得到我想要的东西。
这是我对 linq 的尝试:
array.Where(x => array.Contains(x)).ToArray();
谢谢你帮助我!
解决方案
尽管看到了您要求的内容,但您想要的结果非常有限,以后无法使用。您应该利用GroupBy
in linq 的优势,然后在需要时在该集合中找到它。
// your array
string[] array = {"aa","bb","cc","dd","aa","cc","ee","ff","aa","bb"};
// group by value
var groupedValues = array.GroupBy(x => x).ToList();
// get the "aa" group if exist
var aa = groupedValues.FirstOrDefault(x => x.Key == "aa");
// check if the group was found
if(aa != null)
{
// get all "aa" values in that group. This return this collection based on your inpit{ "aa", "aa", "aa" }
var allaaValues = aa.ToList();
}
推荐阅读
- query-optimization - vertica 计划步骤中的内存分配如何发生?
- python-3.x - 获取geojson中列出的几个元素的总和
- java - ScrollPane 中的 JavaFX FlowPane,动态调整滚动窗格的内容和大小
- r - lm 的 R rsm 轮廓
- android - Nativescript Android 构建:无法实例化活动 ComponentInfo
- c++ - 在任一方向上迭代容器并擦除元素
- javascript - 从 Dynamics 365 和 Azure 自动更新外部数据库
- sql-server - SqlServer (Layer2) 的 .Net Framework 数据提供程序不显示列表中现有、已修改或已删除的项目
- python - Python - pyrfc 1.9.5 - 从 IIS 托管的 .NET Core API 调用时导入错误
- android - React Native Android getLaunchOptions 使用 Android Restrictions